数据集的构成
特征值+目标值
机器学习算法分类
监督学习
目标值:类别 - 分类问题
目标值:连续型数据 - 回归问题
目标值:无 - 无监督学习
机器学习算法分类
监督学习(输入数据是有输入特征值和目标值所组成。函数的输出可以是一个连续的值【回归】,或是输出有限个离散值【分类】)
分类:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归
回归:线性回归、岭回归
无监督学习(输入数据是有输入特征值所组成)
聚类 k-means
- Classification: 分类
- Regression: 回归
- Clustering: 聚类
- Dimensionality reduction: 降维
- Model selection: 模型选择
- Preprocessing: 特征工程
sklearn数据集
sklearn.datasets
load_* 获取小规模数据集(数据集下载到内存中)
fetch_* 获取大规模数据集(数据集默认下载到 ~/scikit_learn_data/ 下)
例:sklearn.datasets.fetch_20newsgroups(data_home=None,subset='train')
例子下载20newgroups数据集
data_home: 用于指定下载目录
subset: 选择要加载的数据集,参数有 训练集[train] 测试集[test] 全部[all]
* 表示数据集的名字
load和fetch的返回值
类型:datasets.base.Bunch(字典格式,继承自字典)
data:特征数据数组,是[n_samples*n_features]的二维numpy.ndarray数组
target:标签数组,是n_samples的一位numpy.ndarray数组
DESCR:数据描述
feature_names:特征名,回归数据集没有
target_names:标签名
数据集划分
sklearn.model_selection.train_test_split(arrays, *options)
x: 数据集的特征值
y: 数据集的标签值
test_size: 测试集的大小,一般为float
random_state: 随机种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
return: 顺序:训练集特征值,测试集特征值,训练集目标值,测试集目标值
例:
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
特征工程
特征提取
定义:将任意数据(如文本或图像)转换为可用于机器学习的数字特征 api:
-
字典特征提取
sklearn.feature_extraction.DicVectorizer(sparse=True...) DicVectorizer.fit_transform(X) X:字典或包含字典的迭代器返回值,返回sparse矩阵 DicVectorizer.inverse_transform(X) X:array数组或者sparse矩阵,返回转换之前的数据格式 DicVectorizer.get_feature_names() 返回类别名称
-
文本特征提取
sklearn.feature_extraction.text.CountVectorizer(stop_word=[]) 返回词频矩阵 CountVectorizer.fit.transform(X) X:文本或包含文本字符串的可迭代对象 返回值:返回sparse矩阵 CountVectorizer.inverse_transform(X) X:array数组或 sparse矩阵,返回转换前的数据格式 CountVectorizer.get_feature_names() 返回单词列表 sklearn.feature_extraction.text.TfidfVectorizer(stop_word=[]) 返回词的权重矩阵 TfidfVectorizer.fit_transform(X) X: 文本或包含文本字符串的可迭代对象 返回值:返回sparse矩阵 TfidfVectorizer.inverse_transform(X) X: array数组或 sparse矩阵,返回转换前的数据格式 TfidfVectorizer.get_feature_names() 返回值:单词列表
数据预处理
通过一些**转换函数**将特征数据转**转换成更加适合算法模型**的特征数据的过程
包含内容
数值型数据的无量纲化
归一化
![](https://oscimg.oschina.net/oscnet/46daf7f0656540b443d1b7c669c62672769.jpg)
标准化
![](https://oscimg.oschina.net/oscnet/41337402cf1d52d33ba1c8b930e9a070e7c.jpg)
![](https://oscimg.oschina.net/oscnet/95f265733eccbacbd064e8cf9f9b9c50341.jpg)
sklearn.preprocessing
降维
处理对象:二维数组,降低特征的个数(二维数组的列数)
特征选择
Filter 过滤式
方差选择法:低方差的特征过滤
相关系数 - 特征与特征之间的相关程度
![](https://oscimg.oschina.net/oscnet/98ac73a4bd46ed8f9174a2f0466c0867c7b.jpg)
特征与特征之间的相关程度很高
1)选取其中一个
2)加权求和
3)主成分分析
Embeded 嵌入式
决策树
正则化
深度学习
主成分分析(PCA)
将高维数据转换为低维数据的过程,可能会舍弃原有数据创造新的变量,是数据的压缩,尽可能的降低原数据的维数(复杂度),损失少了的信息,应用在回归分析或聚类分析中