机器学习基本术语
⚫学习(训练):从数据中学得模型的过程
⚫ 训练集:参与模型训练的样本集合
⚫ 测试:学得模型后,使用其样本进行预测的过程
⚫ 测试集:被预测的样本集合
⚫ 分类:输出结果是离散值
⚫ 回归:输出结果是连续值
⚫ 监督学习:训练样本有标记
⚫ 无监督学习:训练样本无标记
⚫ 泛化能力:学得模型适用于新样本的能力
⚫ 独立同分布:样本空间的全体样本都服从一个未知的分布,且相互独立
数据科学研究步骤
⚫ 加载数据集
⚫ 使用pandas和可视化库探索数据
⚫ 转换数据(将非数值数据转换为数值数据)
⚫ 将数据划分为训练集和测试集
⚫ 创建模型
⚫ 训练和测试模型
⚫ 调整模型并评估其准确性
⚫ 对模型未见过的实时数据进行预测
获取和处理数据
加载datasets模块中数据集
⚫ datasets模块常用数据集的加载函数与解释如下表所示。
⚫ 使用sklearn进行数据预处理会用到sklearn提供的统一接口——转换器(Transformer)。
⚫ 加载后的数据集可以视为一个字典,几乎所有的sklearn数据集均可以使用如下属性分别获取数据集的数据、标签、特征名称和描述信息。
➢ data
➢ target
➢ feature_names
➢ DESCR
将数据集划分为训练集和测试集
⚫ 在数据分析过程中,为了保证模型在实际系统中能够起到预期作用,一般需要将总样本分划分成独立的3部分如下。
➢训练集(train set):用于估计模型
➢验证集(validation set):用于确定网络结构或控制模型复杂程度的参数
➢测试集(test set):用于检验最优模型的性能
⚫ 典型的划分方式如下。
➢ 训练集数量,占总样本数量的50%。
➢ 验证集数量,占总样本数量的25%。
➢ 测试集数量,占总样本数量的25%。
⚫ train_test_split函数
➢ sklearn的model_selection模块提供了train_test_split函数,能够对数据集进行拆分,其使用格式如下。
sklearn.model_selection.train_test_split(*arrays, **options)
➢ train_test_split函数根据传入的数据,分别将传入的数据划分
为训练集和测试集。
➢ 如果传入的是1组数据,那么生成的就是这一组数据随机划分
后训练集和测试集,总共2组。如果传入的是2组数据,则生成
的训练集和测试集分别2组,总共4组。
➢ train_test_split是最常用的数据划分方法,在model_selection模
块中还提供了其他数据集划分的函数,如PredefinedSplit,ShuffleSplit等。
使用sklearn转换器进行数据预处理
⚫ sklearn转换器三个方法
➢sklearn把相关的功能封装为转换器(transformer)。
➢使用sklearn转换器能够实现对传入的NumPy数组进行标准化处
理,归一化处理,二值化处理,PCA降维等操作。
⚫ sklearn转换器三个方法
⚫ sklearn部分预处理函数与其作用
回归模型
使用sklearn估计器构建回归模型
⚫ 回归分析方法
➢分为学习和预测2个步骤。学习是通过训练样本数据来拟合回归方程;预测则是利用学习过程中拟合出的回归方程,将测试数据放入方程中求出预测值。
使用sklearn估计器构建回归模型
⚫ sklearn库常用回归算法函数
评价性能
⚫ 回归模型评价指标
➢回归模型的性能评估不同于分类模型,虽然都是对照真实值进行评估,但由于回归模型的预测结果和真实值都是连续的,所以不能够求取Precision、Recall和F1值等评价指标。回归模型拥有一套独立的评价指标。
⚫ 评价方法与评价标准
➢回归任务的评价标准:均方误差
E
(
f
;
D
)
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
E(f;D)=\frac{1}{m}\sum_{i=1}^{m}\left(f\left(x_{i}\right)-y_{i}\right)^{2}
E(f;D)=m1i=1∑m(f(xi)−yi)2
m
:
样本数量
,
f
(
x
i
)
:
实际值,
y
i
:预测值
m:样本数量,f\left(x_{i}\right):实际值,y_{i}:预测值
m:样本数量,f(xi):实际值,yi:预测值
⚫ 回归模型评价指标