美文网首页
机器学习(入门):简单线性回归

机器学习(入门):简单线性回归

作者: Rich_Billions | 来源:发表于2018-05-07 22:58 被阅读0次

    live简介

    1. 谁适合本课程?
      如果你想成为数据分析、大数据、机器学习、人工智能领域的稀缺人才,零基础即可加入。

    2. 你将从本次课程中学到什么?

    第一部分:机器学习入门

    • 用最通俗易懂的话聊聊,什么是机器学习?
    • 机器学习的步骤是什么?
    • Python机器学习包sklearn如何学习?

    第二部分:简单线性回归

    • 如何通俗易懂地理解“协方差”与“相关系数”的概念?
    • 机器学习算法:简单线性回归是什么?
    • 如何评估线性回归模型?
    • 如何理解相关关系与因果关系
    • 你将挑战的实战项目:如何通过“学习时间”预测“考试成绩”?

    内容大纲

    • 什么是机器学习?
    • 机器学习的步骤是什么?
    • 什么是特征和标签?
    • Python机器学习包sklearn如何学习?
    • 练习:机器学习包sklearn安装
    • 什么是“协方差”与“相关系数”?
    • 相关系数-Python实现
    • 练习:通过游戏理解相关系数
    • 简单线性回归是什么?
    • 简单线性回归-Python实现
    • 线性回归模型评估:决定系数R平方
    • 如何理解相关关系与因果关系?
    • 项目:如何通过“学习时间”预测“考试成绩”?

    1、什么是机器学习?

    豆瓣是如何知道用户的喜好,这些推荐背后的秘密是什么呢?

    我们生活中有很多像豆瓣这样的推荐系统软件,比如淘宝、QQ音乐等。它们背后的秘密正是机器学习。

    机器学习有点像我们人类大脑的决策过程,我们来看看人类是如何思考的。

    假设我们去买橘子,卖橘子大娘说:“橘子甜过初恋”。可是我们想挑最甜的橘子,那怎么办呢?

    记得妈妈之前跟我说过:“嫩黄的橘子比暗黄的橘子甜”,所以我们有了一个简单的判断标准:只挑选嫩黄色的橘子。下面我们来看看普通计算机算法是如何实现这个过程的。

    我们发现普通计算机算法有个缺点,那就是我们得搞清楚影响橘子甜度的所有因素才能把规则写的详细。但是如果我们研究的问题越来越复杂,我们就需要针对所有的橘子类型手动地制定挑选这些规则,那么就会变得非常的困难。下面我们来看看机器学习算法是如何解决这类问题的。

    机器学习算法是由前面的普通计算机算法演化过来的,通过自动地从提供的数据中学习,会让程序变得更“聪明”。

    我们从市场上的橘子中随机地抽取一定的样本,这些样本在机器学习中叫做训练数据。然后把这些样本制作成一个二维表格,上面标记着每个橘子的物理属性,比如颜色、尺寸还有产地。这些橘子的物理属性在机器学习中叫做特征。我们同时还要记录这些橘子是甜的还是不甜的,这在机器学习中叫做标签。

    有了这个训练数据以后,我们把训练数据提供给机器学习算法,然后它就会学习出一个关于橘子特征和它是不是甜之间的模型。当我们下次再去市场上买橘子的时候,面对新的橘子,我们只需要将新橘子的特征输入到训练好的模型中,模型就会自动输出这个橘子是不是甜的。

    有了这个模型,我们现在就能很自信地去买橘子了,根本不用考虑那些橘子的细节。只要将橘子的物理属性输入这个模型,它就会直接告诉我们橘子是甜的还是不甜的。

    更重要的一个特征是,我们可以让这个模型随着时间的增长越变越好。这是因为当我们把模型读进去更多的训练数据的时候,它就会更加的准确。并且当做出错误的预测之后它会自行地修正。

    这还不是最棒的地方,最棒的地方在于我们可以使用同样的机器学习算法去训练不同的模型。比如我们可以使用刚才的机器学习算法来预测苹果、西瓜等,这是常规计算机程序所办不到的。这就是机器学习!

    人工智能、机器学习、深度学习的关系可以用上图的范围来表示。这三个名词其实是随着技术的不断推进而提出来的。

    人工智能的范围很广;机器学习是实现人工智能的一种技术;而深度学习又是机器学习中一种比较火的算法。

    我们需要先从基础的数据分析开始学起,然后再学习机器学习,最后才是深度学习。


    2、机器学习的步骤是什么?

    机器学习其实没有我们想的那么高大上,学会这5个步骤的套路,你也可以有自己的机器学习模型。

    第一步是提出问题,一切的机器学习目标都是为了解决我们生活或者工作中的实际问题。比如我们想知道喜欢电影《谍影重重》的用户还喜欢看哪些同类型的电影;喜欢听beyond歌曲《海阔天空》的用户还喜欢听什么音乐。明确的问题为我们后面的机器学习提供了目标。

    第二步是理解数据,包括三方面内容。第一方面是采集数据,这一部分要根据研究问题采集相关的数据;第二部分是导入数据,我们要分析的数据可能在Excel文件中,也可能在数据库中,也可能在网络中,所以我们需要将这些数据导入到Python的数据结构中,比如读取数据到数据框中;第三方面是查看数据集的信息,包括它的描述统计信息,从整体上理解数据,这跟我们追一个女孩之前要做好理解她喜欢的一切然后才能追到手一个道理。

    第三步是数据清洗,也叫数据预处理,就是对数据进行“整容”,弄成我们期望的样子。这个过程就是从数据集中提取出我们想要的特征的信息。

    第四步是构建模型,模型是用训练数据来构建的,也就是将上面第三步中提取的特征放入机器学习算法中来构建模型。机器学习中最核心的就是机器学习算法,它有很多不同的算法,我们会在之后的课程聊到这块。

    第五步是评估模型,通过测试数据来评估模型的准确性,看看模型的预测效果如何。比如我们构建了一个机器学习算法模型来预测电影,那么我们需要对预测结果进行评估,它到底预测准不准确,准确程度有多高,这就是评估模型。

    这次课程我们从最简单的机器学习算法“简单线性回归”开始聊起。


    3、什么是特征和标签?

    特征就是数据的属性,就像Excel里的字段列名就是特征,这首歌曲的数据属性节奏、强度、听歌时长就是描述歌曲的特征。

    标签就是我们对数据的预测结果,比如这首歌曲的标签就是喜欢还是不喜欢。


    4、Python机器学习包sklearn如何学习?

    scikit-learn 包括了机器学习常用的算法。接下来的课程中我们会简单介绍“简单线性回归”算法的理论部分,最后介绍如何通过机器学习包 scikit-learn 实现我们的理论。这样将理论和具体实践集合起来,不仅可以理解算法底层是如何实现的,而且有了理论基础知识我们可以更好地理解 scikit-learn 中的一些专业术语。

    学习 scikit-learn 包没有必要将这个包里面所有的机器学习算法都看一遍,因为你不仅看不过来,而且理论也很复杂。正确的学习路线是:当我们碰到某一个机器学习算法,比如线性回归的时候,想知道Python如何实现的话,那么我们就可以通过搜索引擎来搜索包里面关于线性回归算法相对应的案例文档来供我们来参考。所以我们需要带着目的去学习这个包,而不是先把这个包都背下来然后再去操作,这是不对的。


    5、练习:机器学习包sklearn安装


    6、3种线性相关性是什么?

    机器学习常常用来解决相关性分析的问题,那么什么是相关性分析呢?

    有时候我们收到的统计量只有一个变量,比如身高、篮球队员的得分等等。但是还有另外一些统计量可以说明多个变量之间的关系,我们举个具体的例子。

    你认为什么样的工作更容易使职场人猝死呢?是缺乏控制力和话语权的工作,还是权力大责任也大的工作呢?

    工作压力大会导致人死亡吗?答案是肯定的!有大量证据表明工作压力大会导致人早逝,尤其是促使心脏病的发作,比如新闻里经常看到华为又有人猝死。但是这种致命的压力或许跟我们想象的有所不同。公司高管每天都要做出重要决策,这些决策关系到他们公司的前途和命运。但他们所承受的风险要远远小于他们的秘书。他们的秘书必须要兢兢业业地完成上级布置的各种任务,所以说最危险的一类工作是来自于对自己的工作任务缺乏控制力。

    英国有一项调查就发现,那些对自己的工作没有支配能力的雇员,也就是基本上对于干什么、怎么干没有话语权的人,相比于那些拥有更多决策权力的雇员来说,他们的死亡率更高。由此说明,并不是那些权力越大责任也越大的压力会置我们于死地,而是那些等着上司给你布置任务但自己又没有权力决定怎样完成、什么时候完成的压力才会把我们压垮。

    研究人员是怎样得出这样的结论的呢?很显然上面的问题我们是没有办法利用随机的实验来解决的。在实际操作中,研究人员在很长一段时间里对英国政府系统的数千名公务人员进行了详细的数据搜集。经过数据分析,提取出一些有意义的相关关系,比如工作缺乏控制力与心脏病之间的相关关系。下面我们就学习研究不同变量相关关系的一个机器学习算法——简单线性回归算法

    上面图片中的数据集是我们今天课程中用到的数据案例。这里有20名学生,我们想知道学生为考试花费的时间与他们最后考试成绩之间的相关关系。这里的小样本只是为了让我们的计算过程更简单、更容易看懂。

    这里我们期望通过学习时间来预测考试成绩,所以学习时间是数据的特征,也叫作解释变量或自变量;考试成绩是数据的标签,也叫作因变量。

    变量的三种线性相关性:
    ① 正线性相关性:直线朝上
    ② 负线性相关性:直线朝下
    ③ 不是线性相关:随机(这里的不相关指的是没有线性相关,但是有可能有其他的相关性,比如曲线相关)


    7、协方差:两个变量的相关性程度

    两种情况的协方差更多的是被变量的变化幅度所影响。为了能够准确研究两个变量在变化过程中的相似程度,我们需要把变量的变化幅度对协方差的影响消除掉,相关系数就可以完成这个任务。


    8、相关系数:两个变量【每单位】的相关性程度

    协方差与相关系数的差别在于:相关系数是标准化后的协方差。相关系数消除了两个变量变化幅度的影响,而只是单纯反映两个变量每单位变化的相似程度。


    9、相关系数-Python实现

    为什么我们要使用相关系数矩阵来表示相关系数呢?
    这是因为当我们有多个变量时,这个矩阵能够让我们一眼就能确定任何两个变量之间的相关关系。

    在相关系数的研究中,当我们发现两个变量有较高的相关性后,就可以进一步研究。这个话题留到下个课程中的实践项目来讲。

    从上图相关系数 r=0.97 可以知道,丈夫的年龄和妻子的年龄有很强的正线性相关性。


    10、练习:通过游戏理解相关系数

    通过以下游戏,熟悉和理解相关系数:
    1)此页面允许你使用滑块来更改相关系数,直观了解点的二维分布和相关系数大小,看看数据会如何呈现。 相关性(长按此处可以复制):http://rpsychologist.com/d3/correlation/
    2)猜测相关性的游戏,给出散点图,然后猜测两个变量的相关性系数。别一看这些乱乱的点就没有玩的兴趣了,其实玩起来还是很上瘾的。 关键还得多玩几次找找感觉(长按此处可以复制): http://istics.net/Correlations/
    3)参考资料《描述统计学》(长按此处可以打开链接):https://www.zhihu.com/lives/916699160831483904


    11、简单线性回归是什么?

    那到底如何通过学习时间预测考试成绩呢?

    我们可以试试在散点图上绘制一条穿过这些点的直线,使这条直线尽量地接近每一个数据点,这样的直线就叫做最佳拟合线。

    我们无法使得这条直线穿过每个点,但是如果存在线性相关性,那么应该可以保证每一个点合理地接近我们所绘制的这条最佳拟合线。这样我们就可以根据学习时间x预测出考试分数y的数值。

    y = a + bx 在机器学习中叫做回归方程,这样方程的直线叫做回归线。

    只要我们能用训练数据求出a和b的最合适的数值,我们就能得到这条最佳拟合线。


    12、简单线性回归-Python实现


    13、练习:如何用训练数据得到线性回归模型?


    14、如何评估模型准确度?


    15、决定系数R平方-Python实现


    16、练习:如何评估模型准确度?


    17、如何理解相关关系与因果关系?

    因果关系的意思是说:A的发生必然会导致B的发生,B的发生必须以A的发生为前提,比如暴饮暴食导致胃痛就是因果关系。

    但是相关关系却不一定,仅仅可能是A和B同时发生了。两个变量之间存在相关关系不一定意味着一个变量会影响另一个变量。

    事情的发生往往是一个复杂系统,是由多因素共同作用造成的,凡事都应该避免用单一模型去解释。

    那么如何应用相关关系呢?一般我们要先通过研究来发现相关关系,然后再进一步去找原因看看两变量是不是存在因果关系。


    18、总结

    相关文章

      网友评论

          本文标题:机器学习(入门):简单线性回归

          本文链接:https://www.haomeiwen.com/subject/huiurftx.html