当前位置:   article > 正文

机器学习sklearn之菜鸟入门三_sklearn菜鸟教程

sklearn菜鸟教程

特征选择

1交叉验证

2皮尔森相关系数

import numpy as np

from scipy.stats importpearsonr

np.random.seed(0)

size = 300

x = np.random.normal(0,1, size)

print "Lowernoise", pearsonr(x, x + np.random.normal(0, 1, size))

print "Highernoise", pearsonr(x, x + np.random.normal(0, 10, size))

Lower noise (0.71824836862138386,7.3240173129992273e-49)Higher noise (0.057964292079338148, 0.31700993885324746)

Pearson相关系数的一个明显缺陷是,作为特征排序机制,他只对线性关系敏感。如果关系是非线性的,即便两个变量具有一一对应的关系,Pearson相关性也可能会接近0。

x = np.random.uniform(-1, 1, 100000)
print pearsonr(x, x**2)[0]

-0.00230804707612

3 互信息和最大信息系数 Mutual information andmaximal information coefficient (MIC)

想把互信息直接用于特征选择其实不是太方便:1、它不属于度量方式,也没有办法归一化,在不同数据及上的结果无法做比较;2、对于连续变量的计算不是很方便(X和Y都是集合,x,y都是离散的取值),通常变量需要先离散化,而互信息的结果对离散化的方式很敏感。

最大信息系数克服了这两个问题。它首先寻找一种最优的离散化方式,然后把互信息取值转换成一种度量方式,取值区间在[0,1]。 minepy 提供了MIC功能。

反过头来看y=x^2这个例子,MIC算出来的互信息值为1(最大的取值)。

from minepy import MINE
m = MINE()
x = np.random.uniform(-1, 1, 10000)
m.compute_score(x, x**2)
print m.mic()

1.0

MIC的统计能力遭到了 一些质疑 ,当零假设不成立时,MIC的统计就会受到影响。在有的数据集上不存在这个问题,但有的数据集上就存在这个问题

4距离相关系数 (Distance correlation)

from scipy import spatial

x=np.random.uniform(-1,1,1000)

spatial.distance.correlation(x,x**2)

0.99133695904559382

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/487489
推荐阅读
相关标签
  

闽ICP备14008679号