机器学习系列(5)_特征工程02特征提取(下)

简介: 数据预处理,特征选择的目的是改善数据质量,体现数据的本质特征,降低计算成本,提升模型的表现。

二、Embedded嵌入法



  1. 嵌入法是一种让算法自己决定使用哪些特征的方法,即特征选择和算法训练同时进行。
  2. 先使用某些机器学习的算法和模型进行训练
  3. 得到各个特征的权值系数,根据权值系数从大到小选择特征
  4. 有别于过滤法的 “ 手工 ” 操作方式:过滤法使用统计量(如P值),但嵌入法的权值系数没有参考临界值
  5. 应用feature_selection.SelectFromModel元变换器。可以与任何在拟合之后有coef_(回归系数),feature_importances_属性或参数中可选惩罚项的评估器一起使用,如随机森林和树模型

1850bd43d34540ffa2c0b606aa7bb751.png

from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier as RFC
RFC_ = RFC(n_estimators =10,random_state=0)  
X_embedded = SelectFromModel(RFC_,threshold=0.005).fit_transform(X,y)  
X_embedded.shape

aeac70eaf4024792ada0b4bb188f6eca.png

0b144317d3a043f9a59ca1bb1386b7ac.png

# 模型的维度有没有降低?
#学习曲线来找最佳阈值
import numpy as np
import matplotlib.pyplot as plt
RFC_.fit(X,y).feature_importances_
threshold = np.linspace(0,(RFC_.fit(X,y).feature_importances_).max(),20)
score = []
for i in threshold:
    X_embedded = SelectFromModel(RFC_,threshold=i).fit_transform(X,y)
    once = cross_val_score(RFC_,X_embedded,y,cv=5).mean()
    score.append(once)
plt.plot(threshold,score)
plt.show()

d332685c941344e181e1d7a71b4a076b.png

将最高部分的学习曲线进行放大:

score2 = []
for i in np.linspace(0,0.004,20):
    X_embedded = SelectFromModel(RFC_,threshold=i).fit_transform(X,y)
    once = cross_val_score(RFC_,X_embedded,y,cv=5).mean()
    score2.append(once)
plt.figure(figsize=[20,5])
plt.plot(np.linspace(0,0.004,20),score2)  
plt.xticks(np.linspace(0,0.004,20))  
plt.show()

547d7c7ccde342cc94d683582dff1005.png


三、Wrapper包装法



  1. 特征选择与算法(并非随机森林等)训练同时进行,类似嵌入法
  2. 不同:使用目标函数作为黑盒帮助选取特征,而非自己输入某个评估指标或者统计量的阈值
  3. coef_或者feature_importances_属性获取每个特征的重要性
  4. 修建当前特征组中最不重要的特征,在修建的集合上递归重复该过程,直到最终达到所需数量的特征
  5. 要使用特征子集进行多次训练,计算成本较高,但其所选的特征是最有利于提升模型表现的
# 使用包装法
from sklearn.feature_selection import RFE
RFC_ = RFC(n_estimators =10,random_state=0)  
selector = RFE(RFC_,n_features_to_select=340,step=50).fit(X,y) 
selector.support_.sum()
selector.ranking_

23e624892cee4b0e8e922d704d7890dd.png

X_wrapper=selector.transform(X)
cross_val_score(RFC_,X_wrapper,y,cv=5).mean() 
# 使用sklearn的cross_val_score进行交叉验证

26756c1e2d944c6ba99ff7df438b9644.png

#调参 100
from sklearn.feature_selection import RFE
RFC_ = RFC(n_estimators =100,random_state=0) 
selector = RFE(RFC_, n_features_to_select=340, step=50).fit(X, y)  # 特征选择340个,每个步骤做50个参数的调整
selector.support_.sum() 
selector.ranking_  
X_wrapper = selector.transform(X) # 通过包装法得到最优结果
cross_val_score(RFC_,X_wrapper,y,cv=5).mean() # 使用交叉验证计算准确性
ba39e61cb0634451a4ac0bb3a1dcf3e5.png 1c1ec39f4ffc40fdb53c2869f816a06c.png


相关文章
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
123 0
|
2天前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的特征工程
【5月更文挑战第10天】 在机器学习领域,特征工程扮演着至关重要的角色。它涉及选择、修改和创造从原始数据中提取的特征,旨在提高模型的性能。本文将深入探讨特征工程的多个方面,包括数据清洗、特征选择、维度缩减以及特征编码等,同时提供实用的技巧和策略,帮助读者构建出更有效的机器学习模型。
|
9天前
|
机器学习/深度学习 数据采集 搜索推荐
机器学习中的特征工程:提升模型性能的关键步骤
【5月更文挑战第3天】特征工程是提升机器学习模型性能的关键,涉及从原始数据中提取、选择和创造特征。它能提高模型预测准确率,简化模型复杂度,增强泛化能力。常用技术包括特征选择(Filter、Wrapper、Embedded方法)、特征构造(组合、多项式、文本特征提取)和特征变换(标准化、归一化、离散化)。通过优化特征工程,可找到最佳特征组合,提升模型性能。
|
12天前
|
机器学习/深度学习 Python
【Python机器学习专栏】时间序列数据的特征工程
【4月更文挑战第30天】本文探讨了时间序列数据的特征工程,强调其在捕捉季节性、揭示趋势、处理异常值和提升模型性能中的重要性。介绍了滞后特征、移动窗口统计特征、时间戳特征、频域特征和波动率特征等方法,并提供了Python实现示例。通过有效特征工程,可提高时间序列分析的准确性和预测可靠性。
|
12天前
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。
|
12天前
|
机器学习/深度学习 自然语言处理 算法
【Python机器学习专栏】文本数据的特征提取与表示
【4月更文挑战第30天】本文探讨了文本特征提取与表示在机器学习和NLP中的重要性。介绍了词袋模型、TF-IDF和n-gram等特征提取方法,以及稀疏向量和词嵌入等表示方式。Python中可利用sklearn和gensim库实现这些技术。有效的特征提取与表示有助于将文本数据转化为可处理的数值形式,推动NLP和机器学习领域的进步。
|
12天前
|
机器学习/深度学习 PyTorch TensorFlow
【Python 机器学习专栏】特征工程在机器学习中的重要性
【4月更文挑战第30天】特征工程是机器学习的关键,涉及数据转换为有意义特征的过程,对模型性能、数据理解、泛化能力和计算效率至关重要。其技术包括特征提取、选择和构建,以及归一化。Python的Pandas、Scikit-learn等工具为特征工程提供支持。面对数据复杂性、相关性和动态性挑战,需灵活应对。通过案例分析展示了特征工程如何提升模型性能,强调了其在构建高效机器学习模型中的作用。
|
16天前
|
机器学习/深度学习 数据采集 自然语言处理
探索机器学习中的维度诅咒与特征工程
【4月更文挑战第26天】 在高维数据空间航行,机器学习模型常受维度诅咒之困扰,遭遇过拟合、计算成本增加和解释性下降等问题。本文通过深入分析维度诅咒的成因,探讨了特征工程作为解决之道的关键策略,包括特征选择、特征提取及特征转换等技术。我们将透过实例说明如何巧妙运用这些方法,以降低数据维度,提升模型性能,同时保持结果的可解释性。
|
26天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型:从特征工程到模型调优
【4月更文挑战第16天】 在数据驱动的时代,机器学习已成为解决复杂问题的关键工具。本文旨在分享一套实用的技术流程,帮助读者构建高效的机器学习模型。我们将重点讨论特征工程的重要性、选择合适算法的策略,以及通过交叉验证和网格搜索进行模型调优的方法。文章的目标是为初学者提供一个清晰的指南,同时为有经验的实践者提供一些高级技巧。
|
1月前
|
机器学习/深度学习 算法 数据挖掘
构建高效机器学习模型:从特征工程到模型调优
【4月更文挑战第4天】在数据驱动的时代,构建一个高效的机器学习模型是解决复杂问题的关键。本文将深入探讨特征工程的重要性,并分享如何通过自动化技术进行特征选择与构造。接着,我们将讨论不同的机器学习算法及其适用场景,并提供模型训练、验证和测试的最佳实践。最后,文章将展示如何使用网格搜索和交叉验证来微调模型参数,以达到最优性能。读者将获得一套完整的指南,用以提升机器学习项目的预测准确率和泛化能力。

热门文章

最新文章