Python数学建模与分析——数据特征选定

个人学习笔记,课程为Python数学建模与分析:基础入门、数据处理、算法编程、高级绘图、建模实战!

目录

 1.为什么需要处理数据特征

2.数据特征选择的方法

3.什么是特征选定

4.单变量特征选定

4.1统计分析可以用来分析选择对结果最大的数据特征,Skikit-learn提供了SelectKBest类。可以使用一系列统计方法进行选定数据特征。

4.2经典的卡方检验是检验定性自变量对定性自变量的相关性的方法。

4.3例

5.递归特征消除

5.1递归特征消除(RE)使用一个基模型来进行多轮训练,每轮模型训练后消除若干权值系数的特征,基于新的特征集进行下一轮训练。通过每一个基模型的精度,找到最终的预测结果影响最大的数据特征

5.2例

5.1主成分分析(PCA)是使用线性代数来转换压缩数据,通常被称作数据降维,常见的数据降维方法除了PCA,还有LDA(线性判别分析),它本身也是一个分类型。

5.2PCA本质是将原始样本映射到维度更低的样本空间中,PCA为了样本映射后更有发散性;而LDA为了样本有最好的分类性能。

5.3PCA无监督的降维方法

5.4LDA有监督的降维方法

5.5聚类算法中,通常用PCA

5.6例

6.特征重要性

6.1袋装决策树算法(Bagging Decision Tree)、随机森林算法、极端随机算法都可以计算数据特征的重要性。

6.2例


文中引入的csv文件:

链接:https://pan.baidu.com/s/1NWLzgAir70LQKUxv74lfIg?pwd=d2n5 
提取码:d2n5


 1.为什么需要处理数据特征

在做数据挖掘和数据分析时数据是所有问题的基础,并且会影响整个项目的进程。相较于使用一些复杂的算法,灵活地处理数据经常会有意想不到的效果。而处理数据不可避免地使用到特征工程。那么特征工程是什么?

数据和特征决定机器学习的而模型和算法知识逼近这个上限而已。

因此,特征工程目的是最大限度从原始数据中提取合适的特征,以供算法和模型使用Skikit-learn提供了较为完整地特征处理方法,包括数据预处理、特征选择、降维等。

2.数据特征选择的方法

(1)单变量特征选定

(2)递归特征消除

(3)主成分分析

(4)特征的重要性

3.什么是特征选定

特征选定是一个流程,能够选择有助于提高预测结果准确度的特征数据,或者有助于我们感兴趣的输出结果的特征数据。

如果数据中包含无关的特征属性,会降低算法的准确度,对预测新数据造成干扰,尤其是线性相关算法,因此执行特征选定有助于:
(1)降低数据的拟合度
(2)提高算法的精度
(3)减少训练时间

4.单变量特征选定

4.1统计分析可以用来分析选择对结果最大的数据特征,Skikit-learn提供了SelectKBest类。可以使用一系列统计方法进行选定数据特征。


4.2经典的卡方检验是检验定性自变量对定性自变量的相关性的方法。

4.3例

from pandas import read_csv
from numpy import set_printoptions
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
#数据分类
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
#特征选择
test = SelectKBest(score_func=chi2,k=4)
fit  = test.fit(X,Y)
#精度调整
set_printoptions(precision=3)
print(fit.scores_)
features = fit.transform(X)
print(features)

5.递归特征消除

5.1递归特征消除(RE)使用一个基模型来进行多轮训练,每轮模型训练后消除若干权值系数的特征,基于新的特征集进行下一轮训练。通过每一个基模型的精度,找到最终的预测结果影响最大的数据特征


5.2例

以逻辑回归为基模型,通过RFE来选定对预测结果影响最大的三个数据特征。

#递归特征消除
from pandas import read_csv
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
#数据分类
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
#特征选定
model = LogisticRegression()
rfe = RFE(model,n_features_to_select=3)
#训练
fit = rfe.fit(X,Y)
print('特征个数:')
print(fit.n_features_)
print('被选特征:')
print(fit.support_)
print('特征排名:')
print(fit.ranking_)

6.主成分分析

6.1主成分分析(PCA)是使用线性代数来转换压缩数据,通常被称作数据降维,常见的数据降维方法除了PCA,还有LDA(线性判别分析),它本身也是一个分类型。

6.2PCA本质是将原始样本映射到维度更低的样本空间中,PCA为了样本映射后更有发散性;而LDA为了样本有最好的分类性能。

6.3PCA无监督的降维方法

6.4LDA有监督的降维方法

6.5聚类算法中,通常用PCA

6.6例

#PCA
from pandas import read_csv
from sklearn.decomposition import PCA
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
#数据分类
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
pca = PCA(n_components=3)
fit = pca.fit(X)
print('解释方差: %s' % fit.explained_variance_ratio_)
print(fit.components_)

7.特征重要性

7.1袋装决策树算法(Bagging Decision Tree)、随机森林算法、极端随机算法都可以计算数据特征的重要性。

7.2例

#Extra Trees Classifier
from pandas import read_csv
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.linear_model import LogisticRegression
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
#数据分类
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
model = ExtraTreesClassifier()
fit = model.fit(X,Y)
print(fit.feature_importances_)

  • 31
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值