概述
机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测。
数据集的构成
存储类型:文件格式(如csv)
- 可用的数
- scikit-learn
- Kaggle
- UCI
- 常用数据集数据的结构组成 结构:特征值 目标值 处理:
- pandas:一个数据读取非常方便以及基本的处理格式的工具
- sklearn: 对于特征的处理提供了强大的接口
特征工程
概念
将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对位置数据的预测准确性
意义
直接影响预测结果
工具
scikit-learn 库
安装:pip3 install Scikit-learn
(需安装pandas)
特征抽取
字典特征抽取
- 文字 –> 提取数据
- 方法:
from sklearn.feature_extraction import DictVectorizer
d = DictVectorizer(sparse=True)
- DictVectorizer.fit_transform(x)
- X: 字典或者包含字典的迭代器
- 返回值:返回sparse矩阵 返回的字典中包含:对于非数字的字段以’字段名=字段值’的形式 对于数字的字段以’字段名’的形式
- DictVectorizer.inverse_tranform(x)
- X: array数组或者sparse矩阵
- 返回值:转换之前数据格式(即就是字典类型的列表)
- DictVectorizer.get_feature_names()
- 返回类别名称
- DictVectorizer.transform(x)
- 按照原先的标准转换
文本特征抽取
文本分类
数据的处理方式
- 数值型:标准的缩放
- 归一化
- 标准化
- 缺失值
- 类别型:one-hot编码
- 时间型:时间的切分
归一化
特点
通过对原始数据进行变换把数据映射到(默认为[0, 1])之间。
在多个特征同等重要时使用。因为在这中情况下,在计算过程中,如果某一项的值特别大,则对于结果的影响也 会特别大,从而使得各个特征之间达不到同等重要的效果,因此需要归一化到统一级别下进行计算,这样才能达到多个特征同等重要的效果。
公式
其中:作用于每一列,max为一列的最大值,min为一列的最小值,那么X’‘ 为最终结果,mx,mi分别为指定区间值,默认为mx=1,mi = 0。
API
类:sklearn.preprocessing.MinMaxScaler
用法: mms = MinMaxScalar9feature_range={0, 1})
函数:fit_transform(X) 其中X为numpy
array格式的数据[n_samples, n_features],是二维数组 。返回值为转换后的形状
异常点
影响:max、min
标准化
特点
通过对原始数据进行交换吧数据交换到均值为0, 标准差为1范围内
公式
注:作用于每一行,mean为平均值,var为方差,
方差考量的是数据的稳定性。
异常点
影响:平均值的影响并不大,从而方差改变较小。
API
类:scikit-learn.preprocessing.StandarScaler
处理之后每列来说所有数据都聚集在均值0附近,标准差为1。
函数:
- StandardScaler.fit_transform(X)
- X: numpy array 格式的数据[n_samples, n_features]
- 返回值:转换后的形状相同的array
StandardScaler.mean_
原始数据中每列特征的平均值StandardScaler.std_
原始数据每列特征的方差
特征选择
数据降维:维度是指特征的数量。
概念
是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们值选择了其中的一部分特征。
方法
Filter