| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 数据预处理和特征工程 -> 正文阅读 |
|
[人工智能]数据预处理和特征工程 |
数据预处理:从数据中检测、纠正、删除损坏的不准确的或者不适用于模型记录的过程 ? ? ? ? ? ?目的:让数据更加适应模型,匹配模型需求 特征工程:将原始数据转换为更能代表预测模型的潜在问题的特征工程。可以通过挑选最相关特征,提取特征以及创造特征来实现。其中创造特征又经常以将为的方式实现。 ? ? ? ?问题:特征之间有相关性,特征和标签无关,特征太多或太少,或者干脆就无法表现出应有的数据现象或无法展示数据的真实面貌。 ? ? ? ?目的:降低计算成本,提升模型上限 数据预处理?: 数据无量钢化:将不同规格的数据转换为统一规格,或者是将不同分布的数据转换为某个特定分布的需求。 线性的无量纲化包括中心化处理(让所有的记录减去一个固定值)和缩放处理(除以一个固定值) 归一化(数据按最小值中心化,再按极差缩放,数据收敛到[0,1]之间)归一化后数据服从正态分布 ? ? ? ? ???=??? ? ?使用preprocessing.MinMaxScaler来实现这个功能。
?
?
? # 使用MinMaxScaler的参数feature_range实现归一化到[0,1]以外的范围 ? ?# 当x中特征向量非常多的时候,fit会报错并表示数据量太大了计算不了 # 这时使用partial_fit作为训练接口 # scaler = scaler.paratial_fit (data) 使用numpy实现归一化
? ?标准化(数据按均值中心化后,再按标准差缩放)数据服从均值为0,方差为1。 ? ? ? ? ? ? ??=?? ? ? ?使用preprocessing.StandardScaler来实现这个功能。
?
MinMaxScaler 对异常值的敏感比较强,所以我们通常使用标准化? 处理缺失值 使用impute.SimpleImputer 参数 missing_values? 告诉 SimpleImputer数据中缺失值长什么样,默认空值np.nan ? ? ? ??strategy 填补缺失值策略,默认是均值。 ? ? ? ? ? ? ? ? ?(数值型 mean 均值,median中值, ? ? ? ? ? ? ? ? ? ? 数值型和字符型? most_frequent众数,constant参考fill_value中的值)? ? ? ? ? fill_value 当参数strategy为constant时可用,可输入字符串或数字表示要填充的值。 ? ? ? ? copy 默认为True 将创建特征矩阵的副本,反之则会将缺失值填补到原来的特征矩阵中。
? # 填补年龄
?
?# 因为不想年龄出现小数,而且因为29.699和28比较接近,所以我们用中位数来填补
? # 使用众数填补Embarked?
?使用numpy和pandas进行填补
?删掉缺失值的行
# .dropna(axis=0)删除所有确实值的行,axis=1删除所有缺失值的列 # inplace为True表示在原数据上进行修改,False表示生成一个复制对象,不修改原数据,默认为False
?先把Age补充上在删除Embarked缺失的两行 ? 所有的行都由891变成了889? 处理分类特征:编码与哑变量 处理文字进行编码,把文字转换成数字 标签专用preprocessing.LabelEncoder
?
简单写法
特征专用 preprocessing.OrdinalEncoder :将分类特征转换为分类数值
?
? 独热编码,创建哑变量 preprocessing.OneHotEncoder 特征中只能有一种,存在一种有你就没我的不等概念 ”S“? ?[ 0,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ”S"? ?[[1,0,0], ”Q“? ? 1,? ? ? ? 转换成? ? ? ? ? ? ? "Q"? ?[0,1,0], ”R“? ? 2]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"C"? ?[0,0,1]]
?
?
? ?处理连续性特征:二值化与分段 sklearn.preprocessing.Binarizer 二值化将特征值设为0或1,大于阈值为1,小于阈值为0
? ?preprocessing.KBinsDiscretizer 将连续型变量划分为分类变量的类。将连续型变量排序后按顺序分箱后编码。 参数 n_bins 每个特征中分箱的个数,默认为5 ? ? ? ? encode 默认onehot 做哑变量 ? ? ? ? ? ? ? ? ? ? ?ordinal 每个特征每个箱都被编码为一个整数,返回每一列是一个特征 ? ? ? ? strategy用来定义箱宽 ? ? ? ? ? ? ? ? ? ? 默认为quantile 等位分箱 每个特征中的每个箱内的样本数量相同 ? ? ? ? ? ? ? ? ? ? uniform 等宽分箱,每个特征中的每个箱最大值之间的差为 ????????????????????????????????????????????????????????(特征.max()-特征.min())/(n_bins) ? ? ? ? ? ? ? ? ? ? kmeans?聚类分箱每个箱中的值到最近的一维k均值聚类的簇心得到距离都相同
?
?
? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 1:26:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |