简介机器学习中的特征工程

简介: 简介机器学习中的特征工程

要解决一个机器学习问题,我们不能仅仅通过将算法应用到提供的数据上。比如.fit() 。我们首先需要构建一个数据集。

将原始数据转换为数据集的任务称为特征工程。

例如,预测客户是否坚持订阅特定产品。这将有助于进一步提高产品或用户体验,还有助于业务增长。

原始数据将包含每个客户的详细信息,如位置、年龄、兴趣、在产品上花费的平均时间、客户续订订阅的次数。这些细节是数据集的特性。创建数据集的任务是从原始数据中了解有用的特性,并从对结果有影响的现有特性中创建新特性,或者操作这些特性,使它们可以用于建模或增强结果。整个过程被简称为特性工程。

有多种方法可以实现特征工程。根据数据和应用程序不同来分类。

在本文中,我们将了解为什么使用特征工程和特征工程的各种方法。

为什么使用特征工程?

特征工程出现在机器学习工作流程的最初阶段。特性工程是决定结果成败的最关键和决定性的因素。

640.png

特征工程在机器学习工作流程中的地位

许多Kaggle比赛都是通过基于问题创建适当的功能而获胜的。例如,在一场汽车转售比赛中,获胜者的解决方案包含一个分类特征——普通汽车的颜色,稀有汽车的颜色。这一特性增加了汽车转售的预测效果。既然我们已经理解了特性工程的重要性,现在让我们深入研究用于实现的各种标准方法。

现在让我们了解如何实现特性工程。以下是广泛使用的基本特征工程技术,

  • 编码
  • 分箱
  • 归一化
  • 标准化
  • 处理缺失值
  • 数据归责技术

编码

有些算法只处理数值特征。但是,我们可能有其他数据,比如在我们的例子中“用户观看的内容类型”。为了转换这种数据,我们使用编码。

One-Hot编码

将分类数据转换为列,并将每个惟一的类别作为列值,这是一种One-Hot编码。

下面是实现One-Hot编码的代码片段,

encoded_columns=pd.get_dummies(data['column'])
data=data.join(encoded_columns).drop('column', axis=1)

当分类特征具有不那么独特的类别时,这种方法被广泛使用。我们需要记住,当分类特征的独特类别增加时,维度也会增加。

标签编码

通过为每个类别分配一个唯一的整数值,将分类数据转换为数字,称为标签编码。

比如“喜剧”为0,“恐怖”为1,“浪漫”为2。但是,这样划分可能会使分类具有不必要的一般性。

当类别是有序的(特定的顺序)时,可以使用这种技术,比如3代表“优秀”,2代表“好”,1代表“坏”。在这种情况下,对类别进行排序是有用的。

下面是要实现标签编码器的代码片段。

fromsklearn.preprocessingimportColumnTransformerlabelencoder=ColumnTransformer()
x[:, 0] =labelencoder.fit_transform(x[:, 0])

分箱

另一种相反的情况,在实践中很少出现,当我们有一个数字特征,但我们需要把它转换成分类特征。分箱(也称为bucketing)是将一个连续的特性转换成多个二进制特性的过程,通常基于数值。

640.png

将数值数据分成4、8、16个箱子

#NumericalBinningExampleValueBin0-30->Low31-70->Mid71-100->High#CategoricalBinningExampleValueBinGermany->EuropeItaly->EuropeIndia->AsiaJapan->Asia

分箱的主要目的是为了使模型更健壮,防止过拟合,但这对性能有一定的影响。每次我们丢弃信息,我们就会牺牲一些信息。

正则化

归一化(也称为最小最大归一化)是一种缩放技术,当应用它时,特征将被重新标定,使数据落在[0,1]的范围内。

特征的归一化形式可通过如下方法计算:

640.png

归一化的数学公式。

这里' x '是原始值而' x '是归一化值。

640.png

640.png

原始数据、归一化数据的散点图

在原始数据中,alcohol在[11,15],malic在[0,6]。归一化数据中,alcohol在[0,1]之间,malic在[0,1]之间。

标准化

标准化(也叫Z-score归一化)是一种缩放技术,当它被应用时,特征会被重新调整,使它们具有标准正态分布的特性,即均值为0,标准差为=1;其中,μ 为平均值(average),σ为与平均值的标准差。

计算样本的标准分数(也称z分数)如下:

640.png

标准化的数学公式

这将特征在[-1,1]之间进行缩放

640.png

640.png

原始数据、标准化数据的散点图

在原始数据中,alcohol在[11,15],malic在[0,6]。在标准化数据中,二者居中于0。


处理缺失值

数据集可能包含一些缺失的值。这可能是在输入数据的失误或出于保密方面的考虑。无论原因是什么,减少它对结果的影响是至关重要的。下面是处理缺失值的方法,

  • 简单地删除那些缺少值的数据点(当数据很大而缺少值的数据点较少时,这样做更可取)
  • 使用处理缺失值的算法(取决于实现该算法的库)
  • 使用数据注入技术(取决于应用程序和数据)

数据归责技术

数据填充就是简单地用一个不会影响结果的值替换缺失的值。

对于数值特征,缺失的值可以替换为:

  • 0或默认值
#Fillingallmissingvalueswith0data=data.fillna(0)
  • 重复率最高的值
#Fillingmissingvalueswithmodeofthecolumnsdata=data.fillna(data.mode())
  • 该特征的均值(受离群值影响,可以用特征的中值替换)
#Fillingmissingvalueswithmediansofthecolumnsdata=data.fillna(data.median())

对于分类特征,缺失的值可以替换为:

  • 重复率最高的值
#Mostrepeatedvaluefunctionforcategoricalcolumnsdata['column_name'].fillna(data['column_name'].value_counts()
.idxmax(), inplace=True)
  • “其他”或任何新命名的类别,这意味着对数据点的估算

在本文中,我们了解了广泛使用的基本特性工程技术。我们可以根据数据和应用程序创建新特性。但是,如果数据很小而且质量不好,这些方法可能就没有用了。

目录
相关文章
|
29天前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
192 4
|
1月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的特征工程
【5月更文挑战第10天】 在机器学习领域,特征工程扮演着至关重要的角色。它涉及选择、修改和创造从原始数据中提取的特征,旨在提高模型的性能。本文将深入探讨特征工程的多个方面,包括数据清洗、特征选择、维度缩减以及特征编码等,同时提供实用的技巧和策略,帮助读者构建出更有效的机器学习模型。
|
2天前
|
机器学习/深度学习 PyTorch 算法框架/工具
机器学习框架简介
【6月更文挑战第26天】机器学习框架简介。
10 5
|
24天前
|
机器学习/深度学习 算法 Python
特征工程:机器学习成功的关键步骤
【6月更文挑战第4天】特征工程是机器学习的关键,涉及特征选择、构建和变换,旨在提升模型性能。通过处理原始数据,如顾客购买行为,选择相关特征,创建新特征并转换数据(如对数变换),可以增强模型预测能力。例如,对异常值丰富的收入数据进行对数变换,可提升模型稳定性和准确性。特征工程是耗时且需要创造力的过程,是连接数据与智能的桥梁,在机器学习中发挥着至关重要的作用。
39 2
|
7天前
|
机器学习/深度学习 存储 算法
机器学习之聚类——双聚类简介及简单案例
机器学习之聚类——双聚类简介及简单案例
5 0
|
7天前
|
机器学习/深度学习 数据挖掘
机器学习之聚类——谱聚类简介及其对特殊形状区域数据的聚类
机器学习之聚类——谱聚类简介及其对特殊形状区域数据的聚类
7 0
|
1月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的特征工程之艺术
【5月更文挑战第25天】 在机器学习的实践中,特征工程是连接原始数据与高效模型的桥梁。不同于常规的摘要侧重于概括文章内容,本文将通过具体案例深入剖析特征工程的重要性、方法论以及实际应用中的经验教训。文章将揭示如何通过细致的特征选择、构建和转换,来提升模型性能,并讨论在此过程中遇到的挑战及应对策略。
|
1月前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习中的特征工程最佳实践
【5月更文挑战第21天】 在机器学习领域,特征工程是模型性能优化的关键环节之一。本文将深入探讨特征工程的核心概念、方法及其在构建高效机器学习模型中的应用。文章不仅总结了实用的特征选择技巧和数据预处理策略,还介绍了如何通过自动化工具简化特征工程流程。通过案例分析,我们展示了在不同数据集上应用这些技术的效果,并讨论了特征工程在未来发展中的潜在趋势与挑战。
|
1月前
|
机器学习/深度学习 数据采集 算法
DataFrame 与机器学习:数据预处理与特征工程
【5月更文挑战第19天】数据预处理(如处理缺失值、标准化)和特征工程对机器学习模型的性能至关重要。使用`pandas`进行缺失值填充,`StandardScaler`实现数据标准化,通过创建新特征(如从日期提取月份、对数变换价格)和特征组合增强信息。相关性分析帮助选择重要特征,提升模型准确性和泛化能力。灵活运用这些方法能有效提升模型性能。DataFrame简化了数据操作,助力高效机器学习。
37 1
|
1月前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】各大模型原理简介
【机器学习】各大模型原理简介

热门文章

最新文章