R语言、WEKA关联规则、决策树、聚类、回归分析工业企业创新情况影响因素数据

简介: R语言、WEKA关联规则、决策树、聚类、回归分析工业企业创新情况影响因素数据

为了解某市规模以上工业企业创新情况,对该市企业的创新活动进行调查点击文末“阅读原文”获取完整代码数据

相关视频

image.png

image.png

image.png

分别得出三组数据testl(企业财务情况:uid=唯一编码,total_Rdeq=R&.D人员折合全时当量合计,totaLRdin=R&D经费内部支出合计,totalF_Rdout=R&D经费外部支出合计)、test2(企业信息化情况:uid=唯一编码,IT_staff=从事信息技术工作的人员,website_num=企业拥有的网站数量)、test3(企业创新情况:uid=唯一编码,ls_innov=企业是否创新)。

利用关联规则、分类、聚类等一系列数据挖掘方法对数据进行分析,可以得出该市创新企业的隐藏特征,进而帮助企业进行研发决策,实现企业创新目标。

分析工具

R 3.3.1

Weka 3.6.8

R 语言

R语言中可以利用函数merge 通过一个或多个共有变量联结两个数据集,可用?merge或help(merge)查看该函数的说明文档。

缺失值处理

R语言中用函数is.naG函数查看数据集中是否存在缺失值,本例中利用0替代缺失值,在其他情况下进行数据清洗时,缺失值处理需要结合变量本身意义视情况来选择处理方法(删除、替换等)。

0ff6bbcc4cce24c71d56e1ffaacb1ec0.png

Weka

weka中也可以进行数据的缺失值处理:

weka.fiIters.unsupervised.attribute.ReplaceMissingValues。对于数值属性,用平均值代替缺失值,对于nominal属性,用它的mode(出现最多的值)来代替缺失值。本例中的缺失值更适用利用0替代缺失值,利用平均值替代可能会影响后续挖掘结果。Weka中还可以进行数据标准化(standardize):类weka.filters.unsupervised.attribute.Standardize。标准化给定数据集中所有数值属性的值到一个0均值和单位方差的正态分布。

异常值检测

R语言中实现异常值检测方法有很多种,既可以利用箱线图进行离群点的识别,也可以利用聚类方法找出异常值。在这里介绍利用简单的箱线图检测异常点的方法(即通过boxplot.statsQ函数得到异常值列表),聚类方法将会在后续实验中进行

90b70c8ad911053cd8d552ebdf2dd8c3.png

数据离散化

关联规则分析要求处理变量的类别为布尔型或数值型,其数值型变量的取值不能过多,因此要求我们首先对定量变量进行离散化处理。常用的离散化方法有分箱离散化、基于熵的离散化、基于卡方的离散化,这里采用ChiMerge(基于卡方的离散化)方法。

463ccf39965fce14d2df21289c3fb4e9.png

bdfc7e32bbfc42708c29fe488c7f0aef.png

由于各变量之间的数值分布特征不同,因此对不同变量进行单独离散化,利用对参数a lp h a取值的控制,划分出合理的区间个数。disc$D isc.data可得出离散化后的数据,最后通过cbindG函数两两合并各个变量的离散化结果。

Weka

导入数据。在图的界面中单击Explore按钮出现如图的界面

6ea7b98b0650bd10a77c454ffaa082dd.png

点击“Open file”导入数据文件,如图所示,导入数据后可移除uid

单击“choose”按钮,并选择filters-unsupervised-attribLite-DiscretizeC无监督离散化)。

Choose后文本框出现"Discretize-B 10-M-1.0-R first-la st"的文字,单击文本框可以改变参数。

单击More可了解各参数的含义以及设置方法。其中attributelndices输入框指定要进行

离散化的属性的顺序号,first代表第一个属性,last代表最后一个属性,其他属性用数字代表。Bins后的文本框可对间隔的个数进行设置。useEqualFrequency的选项为False,即采用等间隔的离散化方法,若改为T m e则为等频率方法。设置好后单击o k返回主界面,点击apply进行离散化。离散化结束后,单击Edit按钮,查看离散化后的数据结果如图

8d4e66c058f4ebddae649eec892b6ac3.png

第二阶段,采用分类、关联规则、聚类等方法研究影响企业创新能力和创新水平的关键因素。


点击标题查阅往期内容


数据分享|WEKA信贷违约预测报告:用决策树、随机森林、支持向量机SVM、朴素贝叶斯、逻辑回归



左右滑动查看更多



01

02

03

04



关联规则

⑴R语言频繁项集

Ihs为前项,rh s为后项,support为支持度,confidence为置信度,l i f t为提升度,Lift(X->Y)=Confidence(X->Y)/Support(Y),如果该值=1,说明两个条件没有任何关联,如果<1说明A条件(或者说A事件的发生)与B事件是相斥的,一般在数据挖掘中当提升度大于3时,我们才承认挖掘出的关联规则是有价值的。

62c1b101f8f919b077d4fbb213ad6554.png

生成关联规则后,可以进行指定规则的筛选。1、按指标对规则进行排序sort(rules,by=,lift');2、搜索规则subset(rulesjhs%in%TV')#前项含“A”的规则,其中%4%是精确匹配,%pin%是部分匹配,也就是说只要item like'%A%'or item like'%B%',%3丨11%是完全匹配,也就是说itemset has'A'and itemset has'B

weka

打开数据集all_disc.arff,选择Associate选项卡。默认的关联规则发现方法是Apriori算法(可以通过单击choose按钮选择使用其他方法),单击choose后面文本框可以对参数进行设置:

单击ok回到主界面,单击start按钮执行关联规则,挖掘结果如图

9e16d80cfb3c1967263c4ab0f7d89009.png

在寻求更好的挖掘结果过程中,可以对参数进行不断地调整。此例挖掘结果中关联规则右边的类别属性多为uninnov,这与丨s_innov=uninnov在数据集中出现更为频繁不无关系,我们可以利用数据集的子集来进行关联规则的挖掘,以得出更有价值的挖掘结果

分类

  分类就是总结己有类别的对象的特点并进而进行未知类别对象的类别预测的过程。归纳、总结每类用户区别于其他类别用户的共同特点,构造一个函数或分类模型,又称为分类器(classifier),根据此函数或分类模型,预测一个对象的类别。我们称这个过程就为分类,其中历史数据被称为训练数据集(training dataset)。

R 语言

rpart(formula,data,method,parms,...)得到决策树对象,其中formula是回归方程的形式,y〜xl+x2+...,innov—共有6个变量,因变量是Isjnnov,自变量是其余5个变量,所以formula可以省略为Isjnnov〜.data是所要学习的数据集method根据因变量的数据类型有如下几种选择:a nova(连续型),poisson(记数型),class(离散型),exp(生存型),因为我们的因变量为是否创新,属于离散型,所以method选择class。

0414e6b6cd7be46b100eb44461757415.png

weka

将BLTEST.csv文件转变为BI_TEST_CLF.arff文件:在weka初始界面选择Explorer,打开BI_TEST.csv文件,在右上角点击Save…,可将.csv文件另存为.arff文件。

单击Start按钮开始决策树的构建过程,结果如图所示

b0e58bf7be5eb0421a3864da7fc875b8.png

从运行的结果可以看出,决策树分类对该数据集的正确分类率为97.2558%,这个准确度是针对训练集的。如果有测试集,选择Supp丨ied test set选项,然后单击Set按钮,可指定测试集文件。要进行交叉验证,则应选额选项Cross-validation,并输入折的数目,如果输入10意味着进行十折交叉验证。

0265bb5a4c1cef535ad1d0f548cf9b12.png

聚类分析

聚类分析是根据给定一组对象的描述信息,发现具有共同特性的对象构成簇。其基本原则是:属于同一个簇的对象的相似度很高,属于不同簇的对象相似度很低。簇内相似度越高、簇间相似度越低,聚类效果越好。这是衡量聚类效果的标准之一。

R语言

a)K-均值聚类

K-means聚类也称为快速聚类,k-means聚类涉及两个主要方面的问题。:第一,如何测试样本的“亲疏程度”;第二,如何进行聚类。

71ff2db315606192f1641322a07de3b6.png

weka

要采用K-均值聚类方法,由于相似度釆用基于距离的方法进行衡量,所以在进行聚类之前,最好先进行数据的规范化。

69042453c50068d35a65ac843be82e35.png

本例中采用默认设置,即scale为1.0,translation为0.0。单击OK按钮回到主界面。

该选项将聚类结果依据数据集中的类别属性的取值进行结果评估,聚类过程中将不使用类别属性。单击start按钮,执行聚类,得到的结果如图6.6所示。

结果中给出了2个簇的中心点的各属性取值,各个簇包含的样本比例,以及2个类别的样本被分配到各个簇中的情况,有1291个样本分错,错误分配率47.2%。

a15f7e78df6d27db895f509801a581ba.png

采用回归分析方法定性研究企业创新影响因素的

在分类问题中预测的是类别,属于类别属性的取值,数值预测则预测的是数属性的取值。回归分析是数值预测的主要方法,所以我们选择的数据集中的所有数据都必须是数值型

Weka

打开BI_TEST_NUM数据集,在Classify选项卡下单击Choose按钮,选择fuctions下的LinearRegression。

e80462aa7867103484500181cab6e6d2.png

语言

提供了广义线性模型的拟合函数g lm(),其调用格式如下:

>g lm(fo rm u la,fa m ily=gaussian,d a ta,w e ig h ts,s u b s e t,n a.a c tio n,s t a r t=n u ll,e t

143acfa2abac374463d55fa0616ed838.png

从结果来看,企业创新影响因素的贡献度达到了25%左右,说明企业内部还有另外的因素和外部因素值得进一步的研究。

相关文章
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
3月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
2月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
3月前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
3月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
3月前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。
|
6月前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
24天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
41 3
|
6月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化