一、机器学习相关概念

  • 机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能
  • 在计算机系统中,"经验"通常以"数据"的形式存在,机器学习所研究的主要内容就是关于在计算机上从数据中产生"模型"的算法,即"学习算法"

二、基本术语

1. 数据集(data set)

记录的集合


2. 示例(instance)、样本(sample)、特征向量(feature vector)

每条记录关于一个事件或对象的描述


3. 属性(attribute)、特征(feature)

反映事件或对象在某方面的表现或性质的事项

# pandas查看特征代码:
pd.columns

4. 属性值(attriute value)

属性上的取值

# pandas查看某特征取值代码:
pd.特征名.unique()

5. 属性空间(attribute space)、样本空间(sample space)、输入空间

属性张成的空间



一般地,令D={x1,x2,,xm}D=\{x_1, x_2, \ldots, x_m\}表示包含mm个示例的数据集,每个示例由dd个属性描述,则每个示例xi={xi1;xi2;;xid}x_i=\{x_{i1};x_{i2};\ldots;x_{id}\}dd维样本空间χ\chi中的一个向量,xiχx_i\in\chi,其中xijx_{ij}xix_i在第jj个属性上的取值,dd称为样本xix_i的维数


6. 学习(learning)、训练(training)

  • 从数据中学得模型的过程,这个过程通过执行某个学习算法来完成
  • 学习过程就是为了找出或逼近真相

7. 训练数据(training sample)

训练过程中使用的数据


8. 训练样本(training sample)

训练数据中的每个样本


9. 训练集(training set)

训练样本组成的集合


10. 假设(hypothesis)

学得模型对应了关于数据的某种潜在的规律


11. 真相、真实(ground-truth)

潜在规律自身


12. 标记(label)

示例结果的信息


13. 样例(example)

拥有标记信息的示例


14. 标记空间(label space)、输出空间

所有标记的集合



一般地,用(xi,yi)(x_i,y_i)表示第ii个样例,其中yiYy_i\in\mathcal{Y}是示例xix_i的标记,Y\mathcal{Y}是所有标记的集合。


15. 学习任务的分类

根据训练数据是否拥有标记信息:

  • 监督学习(supervised learning)
    • 分类(classification):预测值为离散值
      • 二分类(binary classification):只涉及两个类别,一个类为"正类"(positive class),另一个类为"反类"(negative class)
      • 多分类(mulit-class classification):涉及多个分类
    • 回归(regression):预测值为连续值
  • 无监督学习(unsupervised learning)
    • 聚类(clustering):将训练集中的数据分成若干组,每组称为一个"簇"

一般地,预测任务是希望通过对训练集{(x1,y1),(x2,y2),,(xm,ym)}\{(x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\}进行学习,建立一个从输入空间χ\chi到输出空间Y\mathcal{Y}地映射f:χYf:\chi\mapsto\mathcal{Y}。对于二分类,通常令Y={1,+1}{0,1}\mathcal{Y}=\{-1,+1\}或\{0,1\};对于多分类任务,Y>2|\mathcal{Y}|>2;对于回归任务,Y=R\mathcal{Y} = \mathbb{R}R\mathbb{R}为实数集。


16. 测试(testing)

学得模型后,使用其进行预测的过程


17. 测试样本(testing sample)

被预测的样本


18. 泛化能力(generalization)

学得模型适用于新样本的能力

通常假设样本空间中全体样本服从一个未知"分布"(distribution)D\mathcal{D},我们获得的每个样本都是独立地从这个分布上采样获得的,即"独立同分布"(i.i.d.i.i.d.)。一般而言,训练样本越多,得到关于D\mathcal{D}的信息越多,这样就越有可能通过学习获得具有强泛化能力的模型。

三、假设空间

1. 科学推理的两大基本手段

  • 归纳(induction):从特殊到一般的"泛化"过程,即从具体的事实归结出一般性规律
  • 演绎(deduction):从一般到特殊的"特化"(specialization)过程,即从基础原理推演出具体状况

2. 归纳学习(inductive learning)

  • 广义的归纳学习:从样例中学习
  • 狭义的归纳学习(概念学习或概念形成):从训练数据中学得概念(concept)

3. 假设空间

由形如“(色泽=?)^(根蒂=?)^(敲声=?)”的可能取值所形成的假设组成

学习过程看作一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到与训练集"匹配"(fit)的假设


4. 版本空间(version space)

可能存在多个假设与训练集一致,即存在着一个与训练集一致的“假设集合”

四、归纳偏好

1. 归纳偏好(inductive bias,简称偏好)

机器学习算法在学习过程中对某种类型假设的偏好


2. 奥卡姆剃刀(Occam's razor)

一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”


3. 没有免费午餐定理(No Free Lunch Theorem,简称NPL)

  • 前提:所有“问题”出现的机会相同、或所有问题同等重要。但实际情形并不是这样。
  • 内容:无论算法多聪明或多笨拙,期望性能都相同

寓意:
让我们意识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好。

五、sklearn基本建模流程

  1. 实例化,建立评估模型对象 (实例化时需要使用的参数)
  2. 通过模型接口训练模型
  3. 通过模型接口提取需要的信息

ps:第二步和第三步要了解使用的模型有哪些属性和接口可以使用


范例:

from sklearn import tree # 导入需要的模块

clf = tree.DecisionTreeClassifier() # 实例化
clf = clf.fit(x_train,y_train) # 用训练集数据训练模型
result = clf.score(x_test,y_test) # 导入测试集,从接口中调用需要的信息