ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python数据科学手册-机器学习之特征工程

2022-06-05 13:01:06  阅读:254  来源: 互联网

标签:编码 机器 Python 模型 手册 特征 拟合 数据 缺失


特征工程常见示例: 分类数据、文本、图像。 还有提高模型复杂度的 衍生特征 和 处理 缺失数据的填充 方法。这个过程被叫做向量化。把任意格式的数据 转换成具有良好特性的向量形式。

分类特征

比如房屋数据: 房价、面积、地点信息。
image
方案1:把分类特征用映射关系 编码成 整数 。
{'Queen Anne': 1, 'Fremont': 2, 'Wallingford': 3};
在scikit-learn中并不好,数值特征可以反映代数量。会产生 1<2<3的
方案2:使用独热编码
有效增加额外的类,让0和1 出现在对应的列分别表示 每个分类值 的有 或 无。
使用scikit-learn的DictVectorizer类就可以实现。
image

neighborhood字段转换成三列表示三个地点标签。 每一行中用1所在的列对应一个地点。
当这些分类特征编码之后,就可以和之前一样拟合 Scikit-Learn模型了
如果要看每一列的含义,使用get_feature_names()
image

缺陷:分类特征有许多枚举值,维度就会急剧增加。 由于被编码的数据中有许多0,因此用稀疏矩阵 会非常高效
image

文本特征

将文本转换成一组数值, 最简单的编码方法之一就是 单词统计
image
这样统计有一些问题,就是常用词聚集太高的权重,不合理。
解决方案:使用TF-IDF term requency-inverse document frequency 词频逆文档评率。 通过单词在文档中出现的评率来衡量器权重。
image

图像特征

对图像进行编码,最简单的就是:用像素表示图像。 后面详细介绍。 Scikit-Learn Scikit-Image

衍生特征

输入特征进过数学变换 衍生出来的新特征。 通过改变输入数据。 这种处理方式 又被称为 基函数回归。
不能用直线拟合的数据
image

如果按照直线拟合取得最优解如下
image
我们需要一个更复杂的模型来描述 x 与 y的关系,可以对数据进行变换,蹦增加额外的特征来提升模型 的复杂度。
比如:增加多项式特征。
image

第一列表示x,
第二列表示x^2
第三列表示x^3

重新拟合。
image

缺失值填充

原始数据如下
image
首先需要适当的值替换这些缺失数据。
方案1: 用列均值替换缺失值,中位数、众数。 SciKit-Learn 有Imputer类可以实现。
方案2:用矩阵填充或其他模型来处理缺失值,复杂。
image

特征管道

如果经常需要手动应用以上任意一种方法,你就会感到厌倦。尤其是多个步骤串起来使用。
1)用均值填充缺失值
2)将衍生特征转换为二次方
3)拟合线性回归模型
SciKit提供了一个管道对象。
image

标签:编码,机器,Python,模型,手册,特征,拟合,数据,缺失
来源: https://www.cnblogs.com/clllll/p/16343772.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有