首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >动植物学家,用已知判别未知

动植物学家,用已知判别未知

作者头像
herain
发布2022-04-27 16:01:36
发布2022-04-27 16:01:36
4830
举报
文章被收录于专栏:数据指象数据指象

文章期号:20190604

第二章统计进阶,多元统计:判别分析

“数据时代的到来了,一个数据小白也可以炼成动植物学家” ,你是不是惊讶之余带着一丝不屑嗤之以鼻呢?先放下你的小脾气,预留10分钟的时间,我带你探索真真相,耐心看完全文:

文章目录:

1,动植物学家的定义和工作内容

2,数据小白挑战动物植物学家

3,盖棺定论

1,动植物学家的定义和工作内容

什么是动植物学家呢?

植物学家,研究植物的形态、分类、生理、生态、分布、发生、遗传、进化等的科学家。动物学家,研究动物的生理、分类、生态、动物驯化等等。

动植物学家的主要工作是什么呢?

从动植物学家的定义 可知动物植物学家们的主要工作是分类,分类的过程可以简单的描述为:动植物数据的收集,动植物数据的整理,动植物数据的观察,种族内部相似特征的抽取,种族间差异特征的归纳,然后结论的检验,在重新数整理数据,不断迭代的研究过程。

2,数据小白挑战动物植物学家

数据小白为什么不能做动植物的分类工作吗?

2.1,挑战第一项工作:新捕捉A001类昆虫分辨:是雌性?还是雄性呢?

第一步:我们收集A001类昆虫历史的样本数据,分成雌性一组为:G1,雄性一组为:G2。我们本着组内找相似,组间找差异的原则:我们观察G1和G2两种昆虫的体长和翅长存在显著的差异,于是我们测量各组每一只昆虫的体长:m,翅长:n,二元组合(m,n);

计算整理:雌性昆虫的标准值, 雄性性昆虫的标准值,两组共同的协方差分别如下:

新昆虫测量:体长为:7.2,翅长为:5.6:

到此,数据对照之下,你是不是有自己的答案了呢?为严谨一些我们需要进一步计算:俗话有云:“近朱者赤,近墨者黑”,测量新昆虫到两组距离的远近,我们就可以做一些靠谱的判断,这里采用马氏距离计算公式:

计算结果为:-0.053<0, 所以 新昆虫离组G2更近,判断新昆虫为雄性。

不要为计算骚挠:R工具快速完成:

代码语言:javascript
复制
> W2equal = function(x, mu1, mu2, S){(mahalanobis(x, mu2, S) - mahalanobis(x,mu1,S))/2}
> mu1=c(6,5); mu2=c(8,6); S = matrix(c(9,2,2,4),nrow=2);x=c(7.2,5.6)
> W2equal(x, mu1,mu2, S)
[1] -0.053125

由结果 -0.053125 小于 0,所以判别这是一只雄性昆虫。

2.2,挑战第二项工作:一束鸢尾花的品种?

R工具种自带有著名的名鸢尾花(iris)数据,3个品种鸢尾花数据各有50行数据,

每一行数据包括:(花萼长度, 花萼宽带,花瓣长度,花瓣宽度,品种)

四种特征对应一个品种,四种特征我们可以相信成四维空间中的点,四维是什么鬼,顿时凌乱了,稳住我们能赢:我们是不是可以转换看问题的角度,抓住重点,将四维变三维,再将三位变成二维呢?

举个例子:将二维转成一维线性,图中红,蓝表是不同种类的数值点,无论我们从垂直于横轴(x)的角度,还是从垂直纵轴(y)的角度我们无法好好的将红,蓝两个种类分开,当我们反复不断调整角度时,惊喜的发现从垂直直线(z)的角度去看,红蓝的数值点在直线(z)上的分布存在明显的差异(距离)。我们可以完美的将 二维的点降为到了一条直线上。同理:我们也可以将更高维的数据降维,换一个角度看问题,其实问题没有那么复杂,也许我们和专家的差距就在一个角度上。这也是著名的fisher判别的思想,转换角度长称为一种投影:

运用fisher的判别算法,我们鸢尾花(iris)数据进行投影,将四个因素转成两个主因素,训练主因素判别的效果,如果效果好,我们就有信心,有把握判别一束鸢尾花的品种,了解思想很重要,计算的工作就交给我们的伟大的计算机吧。

R:软件中自带著名鸢尾花(iris)数据:

通过投影方法画出了模型图(三个品种鸢尾花的模型图:

代码语言:javascript
复制
> data(iris)
> attach(iris)
> library(MASS)
> ld = lda(Species~Sepal.Length+
Sepal.Width+Petal.Length+Petal.Width)
> ld
> Z = predict(ld)
> newG = Z$class
> cbind(Species, newG, Z$x)
> tab = table(newG, Species)
> tab
            Species
newG         setosa versicolor virginica
  setosa         50          0         0
  versicolor      0         48         1
  virginica       0          2        49

> plot(ld)> plot(fit_lda1,dimen=1)
#data_test 表示一组新花数据,预测判别
predict(ld,data_test) pre_ldal[1:length(ld)]
由结果可知,对原始150个数据的预测中,由3个判别错误,误差率为2%,我们
很有信心的拿新模型判别一束花的品种

代码语言:javascript
复制
read.table(pipe("pbpaste"),sep='\t',header=T)->data
data
   G   x1   x2
1  1 24.8 -2.0
2  1 24.1 -2.4
3  1 26.6 -3.0
....
attach(data)
library(MASS)

ld=lda(G~x1+x2, prior=c(6,8)/14)
ld
Call:
lda(G ~ x1 + x2, prior = c(6, 8)/14)

Prior probabilities of groups:
        1         2 
0.4285714 0.5714286 

Group means:
        x1        x2
1 25.31667 -2.416667
2 22.02500 -1.187500

Coefficients of linear discriminants:
          LD1
x1 -0.6312826
x2  1.0020661

> Z<-predict(ld)
> newG=Z$class
> cbind(G, newG, Z$x)
   G newG        LD1
1  1    1 -1.1475545
2  1    1 -1.1064831
3  1    1 -3.2859294

> tab = table(G, newG)
> sum(diag(prop.table(tab)))
[1] 0.9285714
> Z$post
              1            2
1  0.9386546174 6.134538e-02
2  0.9303445828 6.965542e-02
.....

3,盖棺定论

随着社会的发展,计算机技术的不断革新,我们的原有的工作界限被打破了,数据的在不同的领域的作用越来越强烈,一个优秀的数据工作者的价值越来越重要,他们的跨界能力随着数据量和处理数据的能力在不断的增强,我们有理由相信一个不关心数据价值的工作者将会被“数据的时代”淘汰,拥抱数据,拥抱变化,迎接新的一天。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据指象 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档