机器学习的定义:
计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P,测定在T上的表现因经验E而提高。
例如机器下棋和邮件分类。
(1)对于下棋而言,
E:通过学习棋谱和模拟下棋,提高经验
T:任务为下赢此棋局
P:下赢棋局的概率
(2)对于邮件分类而言,
E:用户标记某些邮件为垃圾邮件
T:任务为正确分类垃圾邮件和合格邮件
P:邮件分类的正确率
机器学习主要的两类学习算法:
(1)监督学习 (我们教机器如何学习)
提供正确答案:对于数据集中每一个样本,都出了有关你研究问题方面的正确的结果数据(如房子实际价格或者肿瘤属于哪一类),算法的目的在于给出更多的正确答案。
上图为监督学习的例子,数据集中每个肿瘤样本都已经知道了所属的类别,用不同的标记表示,依据数据集学习出合理的算法,用来对新的样本数据进行评估。
(2)无监督学习(机器自己学习)
不提供正确答案:给出一个没有标签的数据集,我们不知道要拿它做什么,也不知道每个数据点究竟是什么,只知道这里给出了一个数据集,在其中找到某种结构
上图为无监督学习的例子,数据集中只知道样本属性x1和x2的值,并不知道每个样本到底表示什么含义,但是根据学习,可以将数据集分为两个聚类。
回归和分类的区别:
回归算法(Regression):连续值输出
分类算法(Classification):离散值输出,不同的值代表不同的类别
机器学习的整体流程及目的:
给定某一数据集,通过一定的学习算法进行训练,得出合理的假设函数h。假设函数的输入为样本属性值x,输出为预测值。
例如假设函数为一个一元一次方程:h(x)=θ0 + θ1X
机器学习的流程和目的就是:先初始化参数θ0和θ1(假设都为0),通过给出的训练集进行学习,根据某一评测算法,找出最合理的参数值θ0和θ1,可以相对正确的预测其他的情况的值。
那么如何评测参数θ的准确性呢?我们使用代价函数J
代价函数:
用来描述θ(或假设函数)的准确性。
参数值θ0和θ1越准确,误差就越小。一般我们用实际值和预测值的差来表示误差,由于不知道他们之间的大小关系,这里我们使用(实际值-预测值)的平方来表示某一个样本的误差,而整体的误差用所有样本的误差之和除以样本总数m的2倍来表示,即样本平均误差的二分之一。
我们的目的就是根据代价函数值,不断的优化参数θ,使得代价函数值最小。