数据集
书籍推荐
机器学习 – ‘西瓜书’ – 周志华
统计学习方法 – 李航
深度学习 – ‘花书’
可用数据集
Scikit-learn:数据量小、方便学习
UCI:收录360个数据集、覆盖生活经济科学等领域、数据量几十万
Kaggle:大数据竞赛平台、大量科学家、真实数据、数据量大
sklearn数据集调用(*替换为数据集名)
sklearn.datasets.load_*() // 加载小型数据集
sklearn.datasets.fetch_*() //加载大型数据集,从网络获取
sklearn数据集返回值
返回数据类型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 数据集特征值,测试集特征值,训练集目标值,测试集目标值
特征工程(处理数据)
1.特征抽取
介绍
机器学习算法 = 统计方法 = 数学公式
文本➡数值
提取
1.字典特征提取(特征离散化)
2.文本特征提取
3.图像特征提取(深度学习)
特征提取api
sklearn.feature_extraction
字典特征提取
sklearn.feature_extraction.DictVectorizer(sparse=True)
sparse为True时返回稀疏矩阵,省去0,节省内存
DictVectorizer.fit_transform(X) X:字典或包含字典的迭代器返回值,返回sparse矩阵
DictVectorizer.inverse_transform(X) X:array数组或者sparse矩阵,返回转换前数据格式
DictVevtorizer.get_feature_names_out() 返回类别名称
vector 向量 一维数组
matrix 矩阵 二维数组
文章特征抽取
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
sparse为True时返回稀疏矩阵,省去0,节省内存
CountVectorizer.fit_transform(X) X:字典或包含字典的迭代器返回值,返回sparse矩阵
CountVectorizer.inverse_transform(X) X:array数组或者sparse矩阵,返回转换前数据格式
CountVectorizer.get_feature_names_out() 返回类别名称
特征:单词(特征词)、短语、句子、字母
中文使用jieba将句子进行分词
方法1:CountVectorize (统计每个特征词出现字数)
stop_words 停用词(排除该单词)
关键词:在某一类别文章多次出现,其他类别出现很少
方法2:TfidfVectorizer
TF-IDF - 重要程度
TF - 词频(term frequency)
2.特征预处理
包含内容:数值型数据无量纲化(归一化、标准化)
特征预处理API: sklearn.preprocessing
sklearn.preprocessing.MinMaxScaler(feature_range = (0,1)…)
MinMaxScaler.fit_transform(X)
X:numpy array格式的数据[n_sample,n_features]
返回值:转换后的形状相同的array
sklearn.preprocessing.StandardScaler()
处理后,对每列数据,数据聚集在均值为0附近,标准差为1
StandardScaler.fit_transform(X)
X:numpy array格式数据[n_samples,n_features]
返回值:转换后的形状相同的array
3.特征降维
降维 - 减少相关性强的变量
特征选择 - 找出数据特点(过滤式、嵌入式)
Filter过滤式
方差选择法:低方差特征过滤(相同特征方差低)
相关系数法:特征之间相关程度
Embedded
决策树:信息熵、信息增益
正则化:L1、L2
深度学习:卷积等
模块:sklearn.feature_selection
Filter低方差特征过滤
API:sklearn.feature_selection.VarianceThreshold(threshild = 0.0)
实例化;Variance.fit_transform(X)
X:numpy array格式数据[n_samples,n_features]
返回值:训练集差低于threshold的特征将被删除,默认保留所有非0方差特征
相关系数
皮尔逊相关系数

API:scipy.stats import pearsonr
X: array_like
Y: array_like
Return:相关系数
相关性高处理方法:择优、加权、主成分分析
4.主成分分析
将高维数据转化为低维数据,可能会舍弃原有数据,创造新变量
p.s 零维:标量 一维:向量 二维:矩阵
本质:压缩数据量,减少存储空间
API:sklearn.decomposition.PCA(n_components=None)
n_component:
小数:保留信息的占比
整数:减少到多少特征
PCA.fit_transform(X) X:numpy array格式数据[n_samples,n_features]
Return:转换后指定维度的array
实战案例