一、机器学习相关概念
- 机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能
- 在计算机系统中,"经验"通常以"数据"的形式存在,机器学习所研究的主要内容就是关于在计算机上从数据中产生"模型"的算法,即"学习算法"
二、基本术语
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)、输入空间
属性张成的空间
一般地,令表示包含个示例的数据集,每个示例由个属性描述,则每个示例是维样本空间中的一个向量,,其中是在第个属性上的取值,称为样本的维数
6. 学习(learning)、训练(training)
- 从数据中学得模型的过程,这个过程通过执行某个学习算法来完成
- 学习过程就是为了找出或逼近真相
7. 训练数据(training sample)
训练过程中使用的数据
8. 训练样本(training sample)
训练数据中的每个样本
9. 训练集(training set)
训练样本组成的集合
10. 假设(hypothesis)
学得模型对应了关于数据的某种潜在的规律
11. 真相、真实(ground-truth)
潜在规律自身
12. 标记(label)
示例结果的信息
13. 样例(example)
拥有标记信息的示例
14. 标记空间(label space)、输出空间
所有标记的集合
一般地,用表示第个样例,其中是示例的标记,是所有标记的集合。
15. 学习任务的分类
根据训练数据是否拥有标记信息:
- 监督学习(supervised learning)
- 分类(classification):预测值为离散值
- 二分类(binary classification):只涉及两个类别,一个类为"正类"(positive class),另一个类为"反类"(negative class)
- 多分类(mulit-class classification):涉及多个分类
- 回归(regression):预测值为连续值
- 无监督学习(unsupervised learning)
- 聚类(clustering):将训练集中的数据分成若干组,每组称为一个"簇"
一般地,预测任务是希望通过对训练集进行学习,建立一个从输入空间到输出空间地映射。对于二分类,通常令;对于多分类任务,;对于回归任务,,为实数集。
16. 测试(testing)
学得模型后,使用其进行预测的过程
17. 测试样本(testing sample)
被预测的样本
18. 泛化能力(generalization)
学得模型适用于新样本的能力
通常假设样本空间中全体样本服从一个未知"分布"(distribution),我们获得的每个样本都是独立地从这个分布上采样获得的,即"独立同分布"()。一般而言,训练样本越多,得到关于的信息越多,这样就越有可能通过学习获得具有强泛化能力的模型。
三、假设空间
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基本建模流程
- 实例化,建立评估模型对象 (实例化时需要使用的参数)
- 通过模型接口训练模型
- 通过模型接口提取需要的信息
ps:第二步和第三步要了解使用的模型有哪些属性和接口可以使用
范例:
from sklearn import tree # 导入需要的模块
clf = tree.DecisionTreeClassifier() # 实例化
clf = clf.fit(x_train,y_train) # 用训练集数据训练模型
result = clf.score(x_test,y_test) # 导入测试集,从接口中调用需要的信息