为了解某市规模以上工业企业创新情况,对该市企业的创新活动进行调查(点击文末“阅读原文”获取完整代码数据)。
相关视频
分别得出三组数据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替代缺失值,在其他情况下进行数据清洗时,缺失值处理需要结合变量本身意义视情况来选择处理方法(删除、替换等)。
Weka
weka中也可以进行数据的缺失值处理:
weka.fiIters.unsupervised.attribute.ReplaceMissingValues。对于数值属性,用平均值代替缺失值,对于nominal属性,用它的mode(出现最多的值)来代替缺失值。本例中的缺失值更适用利用0替代缺失值,利用平均值替代可能会影响后续挖掘结果。Weka中还可以进行数据标准化(standardize):类weka.filters.unsupervised.attribute.Standardize。标准化给定数据集中所有数值属性的值到一个0均值和单位方差的正态分布。
异常值检测
R语言中实现异常值检测方法有很多种,既可以利用箱线图进行离群点的识别,也可以利用聚类方法找出异常值。在这里介绍利用简单的箱线图检测异常点的方法(即通过boxplot.statsQ函数得到异常值列表),聚类方法将会在后续实验中进行
数据离散化
关联规则分析要求处理变量的类别为布尔型或数值型,其数值型变量的取值不能过多,因此要求我们首先对定量变量进行离散化处理。常用的离散化方法有分箱离散化、基于熵的离散化、基于卡方的离散化,这里采用ChiMerge(基于卡方的离散化)方法。
由于各变量之间的数值分布特征不同,因此对不同变量进行单独离散化,利用对参数a lp h a取值的控制,划分出合理的区间个数。disc$D isc.data可得出离散化后的数据,最后通过cbindG函数两两合并各个变量的离散化结果。
Weka
导入数据。在图的界面中单击Explore按钮出现如图的界面
点击“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按钮,查看离散化后的数据结果如图
第二阶段,采用分类、关联规则、聚类等方法研究影响企业创新能力和创新水平的关键因素。
点击标题查阅往期内容
数据分享|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时,我们才承认挖掘出的关联规则是有价值的。
生成关联规则后,可以进行指定规则的筛选。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按钮执行关联规则,挖掘结果如图
在寻求更好的挖掘结果过程中,可以对参数进行不断地调整。此例挖掘结果中关联规则右边的类别属性多为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。
weka
将BLTEST.csv文件转变为BI_TEST_CLF.arff文件:在weka初始界面选择Explorer,打开BI_TEST.csv文件,在右上角点击Save…,可将.csv文件另存为.arff文件。
单击Start按钮开始决策树的构建过程,结果如图所示
从运行的结果可以看出,决策树分类对该数据集的正确分类率为97.2558%,这个准确度是针对训练集的。如果有测试集,选择Supp丨ied test set选项,然后单击Set按钮,可指定测试集文件。要进行交叉验证,则应选额选项Cross-validation,并输入折的数目,如果输入10意味着进行十折交叉验证。
聚类分析
聚类分析是根据给定一组对象的描述信息,发现具有共同特性的对象构成簇。其基本原则是:属于同一个簇的对象的相似度很高,属于不同簇的对象相似度很低。簇内相似度越高、簇间相似度越低,聚类效果越好。这是衡量聚类效果的标准之一。
R语言
a)K-均值聚类
K-means聚类也称为快速聚类,k-means聚类涉及两个主要方面的问题。:第一,如何测试样本的“亲疏程度”;第二,如何进行聚类。
weka
要采用K-均值聚类方法,由于相似度釆用基于距离的方法进行衡量,所以在进行聚类之前,最好先进行数据的规范化。
本例中采用默认设置,即scale为1.0,translation为0.0。单击OK按钮回到主界面。
该选项将聚类结果依据数据集中的类别属性的取值进行结果评估,聚类过程中将不使用类别属性。单击start按钮,执行聚类,得到的结果如图6.6所示。
结果中给出了2个簇的中心点的各属性取值,各个簇包含的样本比例,以及2个类别的样本被分配到各个簇中的情况,有1291个样本分错,错误分配率47.2%。
采用回归分析方法定性研究企业创新影响因素的
在分类问题中预测的是类别,属于类别属性的取值,数值预测则预测的是数属性的取值。回归分析是数值预测的主要方法,所以我们选择的数据集中的所有数据都必须是数值型
Weka
打开BI_TEST_NUM数据集,在Classify选项卡下单击Choose按钮,选择fuctions下的LinearRegression。
语言
提供了广义线性模型的拟合函数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
从结果来看,企业创新影响因素的贡献度达到了25%左右,说明企业内部还有另外的因素和外部因素值得进一步的研究。