首页 > 其他分享 >R语言k-prototype聚类新能源汽车行业上市公司分析混合型数据集

R语言k-prototype聚类新能源汽车行业上市公司分析混合型数据集

时间:2023-06-14 23:33:30浏览次数:62  
标签:汽车行业 变量 相关系数 算法 聚类 prototype 数据 聚类分析


本文的研究目的是基于R语言的k-prototype算法,帮助客户对新能源汽车行业上市公司进行混合型数据集的聚类分析。

通过对公司的财务数据、市场表现和发展战略等多个方面的变量进行聚类分析,我们可以将这些公司划分为不同的类别,并分析不同类别的特点和发展趋势。

这样的研究结果对于投资者、政策制定者和行业从业者都具有重要的参考价值,可以帮助他们更好地了解新能源汽车行业上市公司的发展状况和市场表现,从而做出更明智的决策。

分析目标

本项目旨在使用聚类算法对不同城市的新能源汽车行业上市公司进行分类与排序,以寻找客观真实的城市分层方法、支持业务运营与决策。

方法论

首先,由于数据集呈现分类变量与数值变量混合的特点,本次数据分析将采用K-prototype算法:

K-prototype算法:无需创建哑变量,将分别为分类变量计算汉明距离、为数值型变量计算欧几里得距离然后得出聚类结果。算法运行结束后将使用成本函数评价聚类效果。 其次,数值型变量b、c、d的量纲明显不等,为避免量纲影响距离计算中不同变量的权重,需要对变量b、c、d进行处理。由于不知道是否符合正态分布,在这里使用归一化而非标准化。

查看数据

在进行聚类分析之前,首先需要查看数据集,了解数据的结构和特征。通过使用R语言中的相关函数和包,我们可以读取数据集,并使用函数如summary()和head()来查看数据的概要和前几行。

image.png

 
data=read.csv("新能源汽车 汇总.csv")

image.png

求出相关系数

求出相关系数 在进行聚类分析之前,我们需要了解数据中各个变量之间的相关性。通过计算相关系数,我们可以得到一个关于变量之间关联程度的度量。R语言中的cor()函数可以用来计算相关系数矩阵,并通过可视化工具如热图来展示相关系数的模式。

image.png

image.png

image.png

image.png

对数据进行kp聚类(k=3)

对数据进行聚类 在进行聚类分析之前,我们需要选择适当的聚类算法。对于混合型数据集,我们可以使用R语言中的k-prototype算法。该算法可以同时处理数值型和分类型变量,并根据变量之间的相似性将样本划分为不同的聚类。

 

x=data[,-c(1:2)]  
d <- dist(x)  
pclust=function(k){  
  n=nrow(data)  
cut <- tocut(hc, k=k)  
 h <- hc$height[n - k]
clust(3)

image.png

image.png

 
lust(4)

image.png

image.png

 
st(5)

image.png

image.png

 
ust(6)

image.png

image.png

将数据使用算法分成4个类别后可以看到 每个类别之间分布呈不同的簇,交集较少 ,因此可以认为得到的聚类结果较好。

删除相关性变量

删除相关性变量 在进行聚类分析之前,我们需要删除相关性较高的变量。高相关性的变量可能会导致冗余的信息,并且可能会对聚类结果产生负面影响。通过计算变量之间的相关系数,并选择相关系数较低的变量进行保留,我们可以减少变量的维度,从而提高聚类的效果。

 
cor(data[,-c(1:2)])

image.png

image.png

image.png

image.png

image.png

找到高相关性变量(相关系数大于0.8)

找到高相关性变量 除了删除高相关性的变量外,我们还可以找出相关系数较高的变量对。这些变量对可能包含一些重要的信息,可以帮助我们更好地理解数据。通过计算变量之间的相关系数,并选择相关系数较高的变量对,我们可以得到一组关键的变量对,用于进一步的分析和解释。

 
highcor=which(abs(cor(data[,-c(1:2)]))>0.85,arr.ind = T)

clust(2)

image.png

image.png

 
lust(3)

image.png

image.png

 
lust(4)

image.png

image.png

 
ust(5)

image.png

image.png

 
lust(6)

image.png

image.png

将数据使用算法分成4个类别后可以看到 每个类别之间分布呈不同的簇,交集较少 ,因此可以认为得到的聚类结果较好。

数据标准化

在进行聚类分析之前,我们需要对数据进行标准化。标准化可以将不同变量之间的尺度差异进行统一,从而避免某些变量对聚类结果的影响过大。通过使用R语言中的scale()函数,我们可以对数据进行标准化处理。

 
x=scale(data2[,-c(1:2)])  
d <- dist(x)  
hc <- prolust(d)

lust(2)

image.png

image.png

 
st(3)

image.png

image.png

 
ust(4)

image.png

image.png

 
ust(5)

image.png

image.png

 
ust(6)

image.png

1111.png

将数据使用算法分成4个类别后可以看到 每个类别之间分布呈不同的簇,交集较少 ,因此可以认为得到的聚类结果较好。

通过以上步骤,我们可以使用R语言中的k-prototype算法对混合型数据集进行聚类分析,从而帮助我们更好地理解和解释新能源汽车行业上市公司的特征和模式。这对于业界和学术界的研究人员来说,具有重要的实际和理论意义。


thumb-rmn.webp

最受欢迎的见解

1.R语言k-Shape算法股票价格时间序列聚类

2.R语言基于温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图

3.R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归

4.r语言鸢尾花iris数据集的层次聚类

5.Python Monte Carlo K-Means聚类实战

6.用R进行网站评论文本挖掘聚类

7.R语言KMEANS均值聚类和层次聚类:亚洲国家地区生活幸福质量异同可视化

8.PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯模型和KMEANS聚类用户画像

9.R语言基于Keras的小数据集深度学习图像分类

标签:汽车行业,变量,相关系数,算法,聚类,prototype,数据,聚类分析
From: https://www.cnblogs.com/tecdat/p/17481631.html

相关文章

  • K-Means聚类分析-有标签
    模型亮点初始测试集上评分为0.51,调参后测试集上评分为0.75数据集由sklearn自带-----------------------------------------以下为模型具体实现-----------------------------------------Step1.数据读取fromsklearn.datasetsimportload_irisiris=load_iris()x=iris.d......
  • js:typeof和Object.prototype.toString检测数据类型
    (目录)typeof检测数据类型console.log(typeof100);//"number"console.log(typeof"abc");//"string"console.log(typeoffalse);//"boolean"console.log(typeofundefined);//"undefined"console.log(typeoffunction......
  • 0001. Kmeans聚类算法
    一、Kmeans原理Kmeans算法是一种常见的聚类算法,用于将数据集划分成k个不重叠的簇。其主要思想是通过迭代的方式将样本电话分到不同的簇中,使得同一簇内的样本点相似度较高,不同簇之间的相似度较低。Kmeans算法的详细步骤:初始化:选择k个初始聚类中心,可以是随机选择或者根据某种启......
  • R语言上市公司经营绩效实证研究 ——因子分析、聚类分析、正态性检验、信度检验
    全文链接:http://tecdat.cn/?p=32747原文出处:拓端数据部落公众号随着我国经济的快速发展,上市公司的经营绩效成为了一个备受关注的话题。本文旨在探讨上市公司经营绩效的相关因素,并运用数据处理、图示、检验和分析等方法进行深入研究,帮助客户对我国45家上市公司的16项财务指标进行......
  • R语言确定聚类的最佳簇数:3种聚类优化方法|附代码数据
    原文链接:http://tecdat.cn/?p=7275最近我们被客户要求撰写关于聚类的研究报告,包括一些图形和统计输出。确定数据集中最佳的簇数是分区聚类(例如k均值聚类)中的一个基本问题,它要求用户指定要生成的簇数k。一个简单且流行的解决方案包括检查使用分层聚类生成的树状图,以查看其是否暗......
  • Python+sklearn使用DBSCAN聚类算法案例一则
    DBSCAN聚类算法概述:DBSCAN属于密度聚类算法,把类定义为密度相连对象的最大集合,通过在样本空间中不断搜索最大集合完成聚类。DBSCAN能够在带有噪点的样本空间中发现任意形状的聚类并排除噪点。DBSCAN算法不需要预先指定聚类数量,但对用户设定的参数非常敏感。当空间聚类的密度不均匀、......
  • Python使用系统聚类方法进行数据分类案例一则
    首先解释一下为啥最近发的文章中代码都是截图而不是文本,这样做主要是希望大家能对着代码敲一遍而不是直接复制运行得到结果就算了,这样可以加深印象,学到更多东西。当然,这样直接截图也节省了很多排版需要的时间,可以有时间写出更多的案例。在前几天发的文章Python使用系统聚类算法对随......
  • K-means(K均值聚类算法)算法笔记
    K-means(K均值聚类算法)算法笔记K-means算法,是比较简单的无监督的算法,通过设定好初始的类别k,然后不断循环迭代,将给定的数据自动分为K个类别。事实上,大家都知道K-means是怎么算的,但实际上,它是GMM(高斯混合模型)的一个特例,其而GMM是基于EM算法得来的,所以本文,将对K-means算法的算法思想......
  • 使用Kmeans对Word2vec的输出做聚类
    Word2vec会产出每个词语的权重向量使用这个向量,可以直接对所有的词语聚类以下代码,以word2vec的model作为输入,进行kmeans训练,同时进行K的迭代计算,选出WSSSE最小的K值Scala *将word2vec的结果,作为kmeans的输入进行聚类;进行K的多次迭代,选出WSSSE最小的K*@paramspark......
  • 0010.有监督学习之K-均值聚类
    一、聚类分析概述1.簇的定义2.常用的聚类算法二、K-均值聚类算法1.K-均值算法的python实现1.1导入数据集1.2构建距离计算函数1.3编写自动生成随机质心的函数1.4编写K-Means聚类函数2.算法验证3.误差平方和SSE计算三、模型收敛稳定性探讨四、二分K-均值算法1......