机器学习入门知识

本文参考书目:《Python机器学习基础教程》 人民邮电出版社

1. 机器学习常用到的语言、库和工具

(1)python语言

(2)Jupyter Notebook:一个基于浏览器的交互编程环境,能够直接与代码进行交互。机器学习和数据分析本质上都是迭代过程,由数据驱动分析。这些过程必须要有快速迭代和易于交互的工具。

(3)Numpy:是python科学计算的基础包之一。它的功能包括多维数组、高级数学函数(比如线性代数运算和傅里叶变换),以及伪随机数生成器。

(4)Scipy:是python中用于科学计算的函数集合。它具有线性代数高级程序、数学函数优化、信号处理、特殊数学函数和统计分布等多项功能。

(5)matplotlib:是python主要的科学绘图库,其功能为生成可发布的可视化内容,如折线图、直方图、散点图等。

(6)pandas:是用于处理和分析数据的python库。

(7)mglearn:可以用来快速美化绘图,或者用于获取一些有趣的数据。

(8)scikit-learn:是一个开源项目,它包含许多目前最先进的机器学习算法,是最有名的python机器学习库。scikit-learn依赖于另外两个python包:Numpy和Scipy。

(9)Anaconda(重点):用于大规模数据处理、预测分析和科学计算的python发行版。Anaconda已经预先安装好Numpy、Scipy、matplotlib、pandas、IPython、Jupyter Notebook和scikit-learn。(也就是安装这一个,上面提到的工具大部分都有,不用再分别下载)


2. 机器学习大致过程

机器学习也是一个数据挖掘的过程。想要挖掘数据中的知识,我们首先需要一个包含相关知识的数据集,一般的,我们会将数据集分为训练集和测试集,然后在训练集上构建相应的模型,模型构建好后,在测试集上评估模型的精度,如果精度可以接受,就可以在此模型上对新数据进行预测。机器学习的本质是构建模型。


3. 数据集、训练集、测试集、精度

(1)数据集:在机器学习中,数据集中的每个实体或每一行被称为一个样本或数据点,而每一列(用来描述这些实体的属性)则称为特征(feature),而我们要预测的事物(输出结果)则称为标签(label)。

(2)训练集:用于构建机器模型的一部分数据集。

(3)测试集:用于评估模型性能的一部分数据集。

(4)精度:衡量模型的优劣。


4. 监督学习和无监督学习

参考链接:小白都看得懂的监督学习与无监督学习 - 简书

(1)监督学习:根据已有的数据集,知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。也就是说,在监督学习中的训练集既有特征,又有标签,通过训练,让机器可以自己找到特征和标签之间的关系,在面对只有特征没有标签的数据时,可以判度出标签。监督学习可以分为回归(Regression)分类(Classification)

回归:回归问题的目标是预测一个连续值(实数),预测的结果之间具有连续性。 如:预测年收入问题

分类:分类问题的目标是预测类别标签,有时可以分为二分类(在两个类别之间进行区 分)和多分类(在两个以上的类别之间进行区分),预测的结果不具有连续性。 如:识别网站语言的任务

(2)无监督学习:我们不知道数据集中数据、特征之间的关系,而是根据一定的模型得到数据之间的关系,是没有标签的。


5. 泛化、过拟合、欠拟合

(1)泛化:如果一个模型能够对没见过的数据做出准确预测,我们就说它能够从训练集泛化到测试集。我们想要构建一个泛化精度尽可能高的模型。

(2)过拟合:如果在拟合模型时过分关注训练集的细节,得到了一个在训练集上表现很好、但不能泛化到新数据上的模型,那么就存在过拟合

(3)欠拟合:如果模型过于简单,无法抓住数据的全部内容以及数据中的变化,模型甚至在训练集上的表现就很差,选择过于简单的模型被称为欠拟合


6. 模型复杂度与数据集大小的关系

模型复杂度与训练数据集中输入的变化密切相关:数据集中包含的数据点的变化范围越大,在不发生过拟合的前提下你可以使用的模型就越复杂。通常来说,收集更多的数据点可以有更大的变化范围,所以更大的数据集可以用来构建更复杂的模型。但是,仅复制相同的数据点或收集非常相似的数据是无济于事的。

永远不要低估更多数据的力量!


7. 正则化

(1)正则化的概念及原因

简单来说,正则化是一种为了减小测试误差的行为(有时候会增加训练误差)。我们在构造机器学习模型时,最终目的是让模型在面对新数据的时候,可以有很好的表现。当你用比较复杂的模型比如神经网络,去拟合数据时,很容易出现过拟合现象(训练集表现很好,测试集表现较差),这会导致模型的泛化能力下降,这时候,我们就需要使用正则化,降低模型的复杂度。

(2)正则化的几种常用方法

L1范数:L1正则化通过让原目标函数加上了所有特征系数绝对值的和来实现正则化,更适用于特征选择。

L2范数:L2正则化通过让原目标函数加上了所有特征系数的平方和来实现正则化,更适用于防止模型过拟合。