现在机器学习是十分火爆,这也带起了 Python 的潮流,这篇文章将简要概括机器学习里的一些重要概念,作为机器学习的入门博文。
问题类型
机器学习不是说学习就学习的,它的出现是为了解决一些问题的,而这些问题一般不能通过直接编程去解决如计算 999 * 999 是多少。这些问题需要数学里的机器重复做一些事来发现问题中的规律,并利用这个规律来到达某个效果。如下围棋,为了可以成为高手,人类可能要下成千上万盘棋才能总结出规律,现在有计算机,它可以帮我们下棋去总结规律,这就是机器学习。
常见问题类型如下。
监督学习
给你数据集,数据集里输入 x 和输出 y,然后找一个机器学习算法去训练出一个模型,这个模型就可以帮我们在给定 x 值后去预测 y 值。
监督学习里还包含回归问题和分类问题,回归问题一般是有连续性的,如去预测 300 天后的销售额。分类问题一般是离散的,如判断这封邮件是否是垃圾邮件。
无监督学习
给你数据集,数据集里只有输入 x 值,然后找一个机器学习算法去训练一个模型,这个模型就首先会寻找 x 值中蕴含的规律,并将这些规律分类成一些 y 值 ,然后在给定 x 值后去预测对应 y 值。
半监督学习
这种学习方法就是上面两种的结合,给你数据集,里面有输入值 x 和 输出值 y,不同的是有些 x 值没有对应的 y 值,然后还是和上面一样,找个算法,造个模型,对给定 x 值去预测 y 值,当然这个 y 值有可能是一个新类。
下面先从监督学习开始说,这篇文章是入门文章,所以只是提一些概念。
图解监督学习
监督学习的“流程图”如下所示。
其中 Training Data 就是给定的数据集, Learning Algorithm 是我们找的一个机器学习算法,Program (Learner) 一般是我们写的预测给定值的程序。Score Performance 一般是指损失函数,用于判断预测效果。
一些让人头大的字母
变量 | 含义 |
---|---|
x | 特征值,我的理解是输入参数 |
y | x 对应的 y 值 |
预测值 | |
机器学习算法里的参数,注意:这个 是个向量,里面存着算法里不只一个参数 |
出错率
分析出错率可以帮我们选出更优的机器学习算法以及其对应的参数,而出错率和我们高中学的方差有点像,嗯...感觉就是一样。
MSE 表示 Measuring Error,m 表示有多少个数据。这里注意 指的是用 算出来的 ,而不是 。