没有合适的资源?快使用搜索试试~ 我知道了~
sklearn机器学习笔记:数据预处理与特征工程.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
33 浏览量
2022-07-10
12:51:41
上传
评论
收藏 2.62MB PDF 举报
sklearn机器学习笔记:数据预处理与特征工程.pdfsklearn机器学习笔记:数据预处理与特征工程.pdfsklearn机器学习笔记:数据预处理与特征工程.pdfsklearn机器学习笔记:数据预处理与特征工程.pdfsklearn机器学习笔记:数据预处理与特征工程.pdfsklearn机器学习笔记:数据预处理与特征工程.pdfsklearn机器学习笔记:数据预处理与特征工程.pdfsklearn机器学习笔记:数据预处理与特征工程.pdfsklearn机器学习笔记:数据预处理与特征工程.pdf
资源推荐
资源详情
资源评论













sklearn 机器学习笔记:数据预处理与特征工程
这是一篇纯学习笔记,感觉回到了开发,难道要成为调包侠了吗?
数据挖掘 5 大流程
1. 获取数据
2. 数据预处理
3. 数据预处理是从数据中检测,纠正或删除损坏,不准确或不适
用于模型的记录的过程可能面对的问题有:数据类型不同,比如有的
是文字,有的是数字,有的含时间序列,有的连续,有的间断。也可
能,数据的质量不行,有噪声,有异常,有缺失,数据出错,量纲不
一,有重复,数据是偏态,数据量太大或太小
4. 数据预处理的目的:让数据适应模型,匹配模型的需求
5. 特征工程:
6. 特征工程是将原始数据转换为更能代表预测模型的潜在问题的
特征的过程,可以通过挑选最相关的特征,提取特征以及创造特征来
实现。其中创造特征又经常以降维算法的方式实现。
7. 可能面对的问题有:特征之间有相关性,特征和标签无关,特
征太多或太小,或者干脆就无法表现出应有的数据现象或无法展示数
据的真实面貌
8. 特征工程的目的:1) 降低计算成本,2) 提升模型上限
9. 建模,测试模型并预测出结果
10. 上线,验证模型效果
数据预处理与特征工程的重要性不言而喻,数据不给力,再高级
的算法都没有用,接下来就边学习数据预处理与特征工程边使用
sklearn 的库。
先附上 sklearn 官网

其中数据预处理预处理和特征选择模块已经标出
•
模块
•
模块
•
模块
preprocessing:几乎包含数据预处理的所有内容
Impute:填补缺失值专用
feature_selection:包含特征选择的各种方法的实践
接下来会按照顺序来写使用 sklearn 来进行数据预处理和特征工程
数据预处理部分涉及到内容如下
1. 数据无量纲化
2. 缺失值
3. 处理分类型特征:编码与哑变量
4. 处理连续型特征:二值化与分段
特征工程部分涉及到如下内容
1. Filter 过滤法
2. Embeded 嵌入法
3. Wrapper 包装法
一、数据预处理
1.1、无量纲化
无量纲化:在机器学习算法实践中,我们往往有着将不同规格的
数据转换到同一规格,或不同分布的数据转换到某个特定分布的需求,
这种需求统称为将数据“无量纲化”。
数据归一化:当数据 (x)按照最小值中心化后,再按极差(最大值
- 最小值)缩放,数据移动了最小值个单位,并且会被收敛到[0,1]之间,
而这个过程,就叫做数据归一化。公式如下:
x^*=\frac{x-min(x)}{max(x)-min(x)}x =max(x) − min(x)x −

min(x)
在 sklearn 中使用 preprocessing.MinMaxScaler 来实现这个功
能,它有一个重要参数,feature_range,用来控制数据压缩的范围,
默认是 [0,1]
from sklearn.preprocessing import MinMaxScaler
import pandas as pd
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
scaler = MinMaxScaler()
#特征很多的时候使用 MinMaxScaler().partial_fit(data)来代替
fit 否则会报错
scaler.fit(data) #在这里本质是生成 min(x)和 max(x)
res = scaler.transform(data) #通过接口导出结果
print(res)
itf = scaler.inverse_transform(res)#返回初始值
print(itf)
•
1
•
2
•
3
•
4
•
5
•
6
•
7
•
8
•
9
•
10
输出
[[0. 0. ]
[0.25 0.25]
[0.5 0.5 ]
[1. 1. ]]

[[-1. 2. ]
[-0.5 6. ]
[ 0. 10. ]
[ 1. 18. ]]
•
1
•
2
•
3
•
4
•
5
•
6
•
7
•
8
也可以直接使用 fit_transform 来进行拟合导出
res = MinMaxScaler().fit_transform(data)
•
1
使用 feature_range 参数来指定范围
#使用参数 feature_range 来指定压缩的范围,默认是[0,1]
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
res
MinMaxScaler(feature_range=[5,10]).fit_transform(data)
res
•
1
•
2
•
3
•
4
输出
[[ 5. 5. ]
[ 6.25 6.25]
[ 7.5 7.5 ]
[10. 10. ]]
=

•
1
•
2
•
3
•
4
如果自己动手去实习这个接口的功能其实也很简单
#自己动手使用 numpy 来实现归一化与复原功能
import numpy as np
num = np.array(data)
num_nor
•
1
•
2
•
3
•
4
= (num-num.min(axis=0))/(num.max(axis=0)-
num.min(axis=0))
来看输出,结果是一样的
array([[0. , 0. ],
[0.25, 0.25],
[0.5 , 0.5 ],
[1. , 1. ]])
•
1
•
2
•
3
•
4
同样可以实习复原的功能
ori_num
•
1
= num_nor*(num.max(axis=0)-
num.min(axis=0))+num.min(axis=0)
标准化:当数据 (x)按均值(μ)中心化后,再按标准差(σ)缩放,数
据就会服从为均值为 0,方差为 1 的正态分布(即标准正态分布),而
这个过程,就叫做数据标准化。公式如下:
剩余31页未读,继续阅读
资源评论

xxpr_ybgg
- 粉丝: 3347
- 资源: 3万+

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
