5.特征预处理
通过特定的统计方法(数学方法)将数据转换成算法要求的数据其中对于数值型数据采用标准缩放的方式:1、归一化;2、标准化;3、缺失值;对于类别型数据:one-hot编码;对于时间类型数据:时间的切分。sklearn特征处理的API集中于sklearn.preprocessing中
1)归一化(sklearn.preprocessing import MinMaxScaler)
特点:通过对原始数据进行变换把数据映射到默认为【0, 1】之间;在所需要分析的数据特征相同重要时则进行归一化,使得某一特征不会对最终结果造成更大影响(但是对于异常点的处理不是很好,异常点往往影响最大最小值较为明显,其鲁棒性(稳定性)较差知识和传统精确小数据场景(使用较少))其公式为:
其中作用的数据为每一列,max为每列的最大值,min为每列的最小值,X''为最终的结果,mx和mi分别为指定区间值默认为1,0;
feature_range()是设置归一化的范围设定;
2)标准化(from sklearn.preprocessing import StandarScaler)
特点:通过对原始数据进行变换把数据变换到均值为0,标准差为1的范围内,其公式如下:
其中作用的数据依旧是对每一列进行处理,mean为平均值,6为标准差(考量数据的稳定性)
经过处理之后每列来说所有数据都聚集在均值0附近标准差为1;
当然如果需要调用原始数据中每一列的特征的平均值:StandarScaler.mean_;如果需要调用原始数据中每一列特征的方差:StandardScaler.std_;
对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变。
对于标准化来书:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。
在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。
3)缺失值处理(from sklearn.preprocessing import Imputer)
对于缺失值的处理我们往往会使用pandas库来进行处理,这里对Imputer还是进行简单介绍:其中missing_values参数对nan值进行strategy中均值对列axis=0进行操作:
6.数据降维
1)特征选择(sklearn.feature_selection import VarianceThreshold)
特征选择的原因:1、冗余,部分特征的相关度高,容易小号计算性能;2、噪声,部分特征对预测结果有影响。
特征选择的主要方法(三大武器):1、Filter(过滤式):(方差过滤)VarianceThreshold;2、Embedded(嵌入式):正则化、决策树;3、Wrapper(包裹式)
其中threshold参数是指定需要过滤的方差值;
2)主成分分析(from sklearn.decomposition import PCA)
本质:PCA(特征数量达到上百的时候考虑数据需要简化,数据会改变特征数量也会减少)是一种分析、简化数据集的技术;
目的:就是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
作用:可以消减回归分析或者聚类分析中特征的数量;
其中n_components参数选择保留的数据量,其中也可以选择整数(损失的特征个数)但不建议这样做;
- 案例(kaggle instacard数据):
7.机器学习基础
1)机器学习开发流程
机器学习模型定义:通过一种映射关系将输入值到输出值
机器学习流程如下图所示:
2)机器学习算法分类
分类概念:分类是监督学习的一个核心问题,在监督学习中,当输出变量取有限个离散值时,预测问题变成分类问题。最基础的便是二分类问题,即判断是非,从两个类别中选择一个作为预测结果。
回归概念:回归是监督学习的另外一个重要问题。回归用于预测输入变量和输出变量之间的关系,输出是连续性的值。
监督学习(可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)):
分类(离散型数据):k-近邻算法;贝叶斯分类;决策树与随机森林;逻辑回归;神经网络;
回归(连续性数据):线性回归;岭回归;
无监督学习(可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值所组成。):
聚类:k-means;