掌握python机器学习-读书笔记4(特征选择)

8 机器学习中的特征选择

8.1 特征选择

特征选择是机器学习实践中的一步, 帮你在所有特征中选择对结果贡献最多的特征。 显然, 使用不相关数据会减少模型的精确性, 尤其是线性算法:线性回归, 逻辑回归。为什么,因为线性算法一般使用梯度下降来寻找最优值, 那么如果特征无关, 方向就有可能误导。- 我的理解。

以下是三个好处:

  • 减少过拟合。 这个话题其实比较大。 要理解什么是过拟合, 就是模型过于贴近训练集, 导致了泛化能力很差。 吴恩达课上有一个图可以说明过拟合和欠拟合的区分, 这部分可能后续继续详细阐述。
  • 提高精确性。 更少的无效数据意味着模型精确性的提升。
  • 减少训练时间。 数据少了自然运算时间短了。

8.2 单变量选择

scikit-learn提供了SelectKBest类可以用来根据一些统计的测试来选择出一些数量的最有效的特征。 以下例子就是用了chi-square test 卡方检验来进行非相关性分析,选出了4种最相关的特征。

首先, 这个是为了分类变量。输入是这个特征和分类结果。 原理略, 卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。

对于分类的检验算法, 有 : chi2, f_classif, mutual_info_classif 对于回归呢, 有: f_regression, mutual_info_regression

# Feature Extraction with Univariate Statistical Tests (Chi-squared for classification)
from pandas import read_csv
from numpy import set_printoptions
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
# load data
filename = 'pima-indians-diabetes.data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = read_csv(filename, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[
  • 16
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值