机器学习系列(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


相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
特征工程在营销组合建模中的应用:基于因果推断的机器学习方法优化渠道效应估计
因果推断方法为特征工程提供了一个更深层次的框架,使我们能够区分真正的因果关系和简单的统计相关性。这种方法在需要理解干预效果的领域尤为重要,如经济学、医学和市场营销。
86 1
特征工程在营销组合建模中的应用:基于因果推断的机器学习方法优化渠道效应估计
|
7月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的特征工程
【5月更文挑战第10天】 在机器学习领域,特征工程扮演着至关重要的角色。它涉及选择、修改和创造从原始数据中提取的特征,旨在提高模型的性能。本文将深入探讨特征工程的多个方面,包括数据清洗、特征选择、维度缩减以及特征编码等,同时提供实用的技巧和策略,帮助读者构建出更有效的机器学习模型。
|
5月前
|
机器学习/深度学习 人工智能
8个特征工程技巧提升机器学习预测准确性
8个特征工程技巧提升机器学习预测准确性
121 6
8个特征工程技巧提升机器学习预测准确性
|
4月前
|
机器学习/深度学习 SQL 数据采集
"解锁机器学习数据预处理新姿势!SQL,你的数据金矿挖掘神器,从清洗到转换,再到特征工程,一网打尽,让数据纯净如金,模型性能飙升!"
【8月更文挑战第31天】在机器学习项目中,数据质量至关重要,而SQL作为数据预处理的强大工具,助力数据科学家高效清洗、转换和分析数据。通过去除重复记录、处理缺失值和异常值,SQL确保数据纯净;利用数据类型转换和字符串操作,SQL重塑数据结构;通过复杂查询生成新特征,SQL提升模型性能。掌握SQL,就如同拥有了开启数据金矿的钥匙,为机器学习项目奠定坚实基础。
46 0
|
4月前
|
机器学习/深度学习 数据采集 算法
如何使用机器学习神器sklearn做特征工程?
如何使用机器学习神器sklearn做特征工程?
|
6月前
|
机器学习/深度学习 算法 Python
特征工程:机器学习成功的关键步骤
【6月更文挑战第4天】特征工程是机器学习的关键,涉及特征选择、构建和变换,旨在提升模型性能。通过处理原始数据,如顾客购买行为,选择相关特征,创建新特征并转换数据(如对数变换),可以增强模型预测能力。例如,对异常值丰富的收入数据进行对数变换,可提升模型稳定性和准确性。特征工程是耗时且需要创造力的过程,是连接数据与智能的桥梁,在机器学习中发挥着至关重要的作用。
87 2
|
6月前
|
机器学习/深度学习 分布式计算 监控
在大数据模型训练中,关键步骤包括数据收集与清洗、特征工程、数据划分;准备分布式计算资源
【6月更文挑战第28天】在大数据模型训练中,关键步骤包括数据收集与清洗、特征工程、数据划分;准备分布式计算资源,选择并配置模型如深度学习架构;通过初始化、训练、验证进行模型优化;监控性能并管理资源;最后保存模型并部署为服务。过程中要兼顾数据隐私、安全及法规遵守,利用先进技术提升效率。
118 0
|
7月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的特征工程之艺术
【5月更文挑战第25天】 在机器学习的实践中,特征工程是连接原始数据与高效模型的桥梁。不同于常规的摘要侧重于概括文章内容,本文将通过具体案例深入剖析特征工程的重要性、方法论以及实际应用中的经验教训。文章将揭示如何通过细致的特征选择、构建和转换,来提升模型性能,并讨论在此过程中遇到的挑战及应对策略。
|
7月前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习中的特征工程最佳实践
【5月更文挑战第21天】 在机器学习领域,特征工程是模型性能优化的关键环节之一。本文将深入探讨特征工程的核心概念、方法及其在构建高效机器学习模型中的应用。文章不仅总结了实用的特征选择技巧和数据预处理策略,还介绍了如何通过自动化工具简化特征工程流程。通过案例分析,我们展示了在不同数据集上应用这些技术的效果,并讨论了特征工程在未来发展中的潜在趋势与挑战。
|
7月前
|
机器学习/深度学习 数据采集 算法
DataFrame 与机器学习:数据预处理与特征工程
【5月更文挑战第19天】数据预处理(如处理缺失值、标准化)和特征工程对机器学习模型的性能至关重要。使用`pandas`进行缺失值填充,`StandardScaler`实现数据标准化,通过创建新特征(如从日期提取月份、对数变换价格)和特征组合增强信息。相关性分析帮助选择重要特征,提升模型准确性和泛化能力。灵活运用这些方法能有效提升模型性能。DataFrame简化了数据操作,助力高效机器学习。
111 1