本文共 2283 字,大约阅读时间需要 7 分钟。
目录
特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性。
直接影响预测结果
创建一个基于python3的虚拟环境
mkvirtualenv -p /usr/bin/python3.6 ml3 在虚拟环境中运行以下命令 pip3 install Scikit-learn 通过导入命令查看是否可以使用 import sklearn 注:安装scikit-learn需要Numpy,pandas等库得出结论: 特征抽取对文本等数据进行特征值化
注:特征值化是为了计算机更好的理解数据
sklearn.feature_extraction
把字典中一些类别数据,分别进行转换成特征
作用:对字典数据进行特征值化
类: sklearn.feature_extraction.DictVectorlzer
演示:
说明:
sparse矩阵:scipy库(对numpy库进行封装的一个库)的默认数据格式就是sparse矩阵。
其存在的目的:节约内存,方便读取处理
以上sparse矩阵对应的ndarray数组是:
one-hot编码概念:
把数据处理成0,1的矩阵形式,如下:
在机器学习中的意义:把类别数据转换成数值型,方便分析。
作用:对文本数据进行特征值化
两种方式:1.统计每个词在每篇文章出现的次数 2.在第一种的方式上,另外评估词的重要程度
类:sklearn.feature_extraction.text.CountVectorizer
类:sklearn.feature_extraction.text.TfidfVectorizer (分类机器学习算法的重要依据)
注意:利用toarray()进行sparse矩阵转换array数组
对于中文文本,需要把中文进行分词处理。如下:
第二种方式演示:
1、特征处理的方法
特征处理是什么: 通过特定的统计方法(数学方法)将数据转换成算法要求的数据
数据类型 | 数据处理方法 | |
数值型数据 | 标准缩放 | 1、归一化 |
2、标准化 | ||
3、缺失值 | ||
类别型数据 | one-hot编码 | |
时间类型 | 时间的切分 |
2、sklearn特征预处理API
sklearn.preprocessing:所有的预处理方法都在这个模块
sklearn归一化API:sklearn.preprocessing.MinMaxScaler
归一化的场景:当一些特征同等重要的时候,进行归一化
归一化的目的:使某个特征不会对结果造成更大影响
场景:使某个异常特征值不会对结果造成更大影响
特点:通过对原始数据进行变换,把数据变换到均值为0,标准差为1(下图有误)
总结:在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据的场景
sklearn特征化API:sklearn.preprocessing.StandardScaler
演示:
另外缺失值可以用pandas进行处理(dropna、fillna方法),前提是缺失值的类型必须是np.nan(nan是浮点类型)
在pandas中处理有:replace("?", np.nan)
删除 | 如果每列或行数据缺失达到一定的比例,建议放弃整行或者整列 |
插补 | 可以通过缺失值每行或每列的平均值、中位数来填充(一般按照每列,按照特征) |
sklearn缺失值API:sklearn.preprocessing.Imputer
演示:
数据的降维:指减少特征的数量
降维的方式:
1、特征选择
2、主成分分析
1、特征选择是什么
特征选择:单纯地从提取到的所有特征中选择部分特征作为训练集特征。
主要方法(三大武器):Filter(过滤式):VarianceThreshold -- Variance:方差
---- 通过方差大小,看出所有样本的这个特征的数据情况(比如方差为0,证明这一特征的数值是一样的,对预测数据没有意义)
Embedded(嵌入式):正则化、决策树
Wrapper(包裹式) 一般不用
特征选择原因:
冗余:部分特征的相关度高,容易消耗计算性能
噪声:部分特征对预测结果有影响
2、sklearn特征选择API
sklearn.feature_selection.VarianceThreshold
演示:
3、其他特征选择方法
神经网络(后面讲)
sklearn.decomposition
本质:PCA是一种分析、简化数据集的技术
目的:是使数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
作用:可以削减回归分析或者聚类分析中特征的数量
PCA应用场景:当特征数量达到上百的时候,要考虑简化数据(减少特征)-- 数据会改变,特征数量会减少
高维度数据容易出现的问题:特征之间通常是相关的
注意:参数n_components的取值有两种:
1.小数:取值范围是0~1,代表数据进行PCA主成分分析之后,保存了%比的信息量,一般我们会把信息保留在90%~95%
2.整数:减少到的特征数量。我们可能拿不准到底保留到多少个特征数量,一般不用整数表示。
演示:
转载地址:http://zdrgn.baihongyu.com/