IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 自动化特征选择 -> 正文阅读

[Python知识库]自动化特征选择

高维度的数据集可能使模型变得更加复杂,从而增大过拟合的可能性。在处理高维数据集时,最好将特征的数量减少到只包含最有用的那些特征,并删除多余特征。这样会得到泛化能力更好、更简单的模型。删除噪声特征可以提高模型性能。

特征提取有三种基本策略:(1)单变量统计(univariate statistics);(2) 基于模型的选择(model-based selection);(3) 迭代选择(iterative selection)。这些方法都是监督方法,即它们需要目标值来拟合模型。换言之,需要将数据划分为训练集和测试集,并只在训练集上拟合特征选择。

(1) 单变量统计

在单变量统计中,我们计算每个特征和目标值之间的关系是否存在统计显著性,然后选择具有最高置信度的特征。对于分类问题,这也被称为方差分析(analysis of variance,ANOVA)。这些测试的一个关键性质就是它们是单变量的,即它们只单独考虑每个特征。因此,如果一个特征只有在与另一个特征合并时才具有信息量,那么这个特征将被舍弃。单变量测试的计算速度通常很快,并且不需要构建模型;另一方面,它们完全独立于你可能想要在特征选择之后应用的模型。

from sklearn.datasets import load_breast_cancer
from sklearn.feature_selection import SelectPercentile
from sklearn.model_selection import train_test_split

cancer = load_breast_cancer()
X = cancer.data
Y = cancer.target
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, shuffle=True, random_state=0)
select = SelectPercentile(percentile=50)
select.fit(X_train, Y_train)
print("提取结果:",select.get_support())
X_train_selected = select.transform(X_train)
print('提取前的维度:', X_train.shape)
print('提取后的维度:', X_train_selected.shape)

(2) 基于模型的特征选择

基于模型的特征选择使用一个监督机器学习模型来判断每个特征的重要性,并且仅保留最重要的特征。用于特征选择的监督模型不需要与用于最终监督建模的模型相同。

特征选择模型需要为每个特征提供某种重要性度量,以便用这个度量对特征进行排序。决策树和基于决策树的模型提供了feature_importance_属性,可以直接编码每个特征的重要性。线性模型系数的绝对值也可以用于表示特征重要性。

from sklearn.datasets import load_breast_cancer
from sklearn.feature_selection import SelectFromModel
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

cancer = load_breast_cancer()
X = cancer.data
Y = cancer.target
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, shuffle=True, random_state=0)
select = SelectFromModel(estimator=RandomForestClassifier(n_estimators=100, random_state=42),
                        threshold='median'
                        )
select.fit(X_train, Y_train)
print("提取结果:",select.get_support())
X_train_selected = select.transform(X_train)
print('提取前的维度:', X_train.shape)
print('提取后的维度:', X_train_selected.shape)

(3) 迭代特征选择

在迭代特征选择中,将会构建一系列模型,每个模型都使用不同数量的特征。有两种基本方法:① 开始时没有特征,然后逐个添加特征,直到满足某个终止条件;② 从所有特征开始,然后逐个删除特征,直到满足某个终止条件。

由于构建了一系列模型,所以这些方法的计算成本要比前面讨论的方法更高。

其中一种特殊的方法是递归特征消除法(recursive feature elimination, RFE),它从所有特征开始构建模型,并根据模型舍弃最不重要的特征,然后使用除被舍弃的特征之外的所有特征来构建一个新模型,如此继续,直到仅剩下预设数量的特征。为了让这种方法能够运行,用于选择的模型需要提供某种确定特征重要性的方法,如随机森林。

from sklearn.datasets import load_breast_cancer
from sklearn.feature_selection import RFE
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

cancer = load_breast_cancer()
X = cancer.data
Y = cancer.target
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, shuffle=True, random_state=0)
select = RFE(estimator=RandomForestClassifier(n_estimators=100, random_state=42),
            n_features_to_select=15
            )
select.fit(X_train, Y_train)
print("提取结果:",select.get_support())
X_train_selected = select.transform(X_train)
print('提取前的维度:', X_train.shape)
print('提取后的维度:', X_train_selected.shape)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:19:14  更:2022-03-30 18:23:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:30:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码