noahye
数据分类不是常规的1234或者合格不合格 而是具体的数据 例如12.3 14.5等等
用lda函数(MASS函数包)分析后 再用predict和cbind分析
以下为代码:
> N=read.table(“clipboard”,header=TRUE)
> attach(N)
> library(MASS)
> (ld=lda(DEHNUNG~C+SI+MN+P+S+CU+MG+CR+NI+AL+MO+TI+SN+V+ZN+CE))
> Z=predict(ld)
> newD=Z$class
> cbind(DEHNUNG,Z$x,newD)
示范数据:
C SI MN P S CU MG CR NI AL MO TI
3.56000 2.83000 0.34000 0.01300 0.00900 0.05000 0.05200 0.04100 0.02900 0.01100 0.00400 0.00800
SN V ZN CE DEHNUNG
0.00400 0.00400 0.00100 0.00600 18.6
在用predict检验之后 DEHNUNG这项结果(newD)相差非常大 是用错函数了吗?
libingfei
进来共同学习下。不一定对(凭记忆,错了麻烦大神纠正)
记得lda是,一种进行无序的分类方法。
12.3 14.5是类别的话,那么无论他们的值是什么样,计算结果与他们的大小无关,只与他们表示得类别相关。
lda是"按照类别计算最佳的数据空间投影方法,使分类数据的样本经投影后达到最佳分类(聚合度、分离度)"。最终投影的值,应该只与计算值(C+SI+MN+P+S+CU+MG+CR+NI+AL+MO+TI+SN+V+ZN+CE)相关.
按理说,你计算后应该会得到分类(12.3、14.5)对应的投影的中心(不一定得这俩值),predict,预测数据的结果,计算到各类别中心的距离,离谁近就属于哪一类。
noahye
[未知用户]
但是我需要得出一个数值结果 而不是类别判断 是不是用错函数了?
libingfei
按照你说的,我认为是用错了。
你可以用回归预测方法,依据你数据的分布选择不同的回归模型,完成预测。
glm、lm这类函数
noahye
[未知用户]
好的 我去试试 谢谢~