机器学习初识

        在真正学习机器学习之前,一直在想机器应该如何学习,当时只是会使用java解决产品设计好的需求,代码都是根据需求设计好的,代码的能力都是在预估范围之内的,没有什么变化,更别提有什么学习能力,那如何写代码才能让代码有学习能力呢,当时一直想不明白,另外,既然是学习,就像我们学习一样,总是需要老师的指导,最起码要有人告诉我学习的结果是对的还是错的,错了我应该如何改正,这些在我还没有接触机器学习之前都是一团雾水。

        后来报了一个业余班级学习机器学习,开始渐渐的明白其中的玩法,但是想将我的理解用文字的方式表达出来,还需要更深的理解,这里仅仅是为了记录自己学习的过程,能有朋友进行交流更是欢迎,理解中不免有很多的误解,欢迎来喷!!!

        我感觉没办法用几句简单的话就能够解释我之前的疑惑,即使说了,也无法准确的表达,都是片面的,我认为只有举例来说清楚每种学习的内在原理,才能够让人比较全面的认识机器学习,但是这里我还是要将对自己疑惑的解答,写一下,以供之后自己看时知道现在的我的理解水平有多么的差,我认为机器学习的方式,就是使用一定的模型,不断的将数据喂给模型,来调整模型的参数。如果我还没有学习机器学习,看到这个解释,肯定一脸懵逼,肯定有很多的问题:什么是模型,什么是参数,数据如何调整参数等等等等,这也是我上面说的,没法用几句话来让你知道什么是机器学习,只能通过具体的模型和具体例子来解答心中的疑惑。

        我学习中,接触的第一个模型就是kmeans算法,这是一种无监督的聚类算法,这也是一个非常好理解的算法,这里我又要啰嗦几句,我们机器学习学习的是什么,学习的是数据,那数据是什么,大家应该见过各式各样的数据,比如图片、表格、视频、新闻这些都是数据,那我们要从中学习什么的,有的需要从图片中找出某个物品,有的需要将数据分成不同的分类,有的需要从新闻中总结摘要等等,不同的模型有不同的作用,对数据也有不同的要求,kemans算法是做聚类的,通俗来说,就是你给我一批数据,我可以给你分成不同的几个类别,具体例子,比如根据世界杯的得分,你想分成高、中、低3个分类,你不需要告诉我具体的分段的分值。算法的大概逻辑是:

         1、先在分值中随便取3个值

         2、计算其他所有值和这三个值的差距,将剩下的值分配到和自己最近的那一个分组中

         3、根据分好的组,用每个组中的平均值来代替原来的那三个值,然后重复第二步,直到没有数据再变换分组

        上面写的是大概思想,具体的算法和实现代码,后面的文章中我会进行整理。

         上面说的仅仅是机器学习中无监督学习中的一个算法,机器学习分为有监督和无监督学习,那么有监督学习是怎么玩的呢。从字面来看就知道,有监督学习就是会监督机器学习的过程,说的通俗点,就是机器每次学习完后,都能够知道自己学的对不对,或者和正确的结果相差多大。大家从上面的kemans算法中可以感觉到,这个算法学习完毕后,得到的仅仅是这些数据的分类,来了新数据就需要再来一次,和上次的学习没有任何关联,可以说上次的学习并没有留下什么可以对之后的学习有帮助的,但是有的机器学习可以使用一些数据进行学习后,对新来的数据进行预测,举个具体的例子,我们可以根据之前的房价预估新出来的房子的价格,可以根据之前的股票价格,预估之后的股票价格,可以根据学习中的图片,判断新给的图片中是否有汽车,可以根据之前和女朋友约会的情况,预估今晚女朋友会不会迟到等,这是机器学习的一个能力,那如何来做的,这里有很多的模型,我先简单列举几个。

           这里再啰嗦几句,预估,都是建立在数据分布相同的基础上的,这里听着很懵逼,什么是数据分布相同,比如说,你不能用房价训练的模型,来预估股票的价格,不能用是否有汽车的寻来模型,来预估图片中是否有飞机,也就是说你用来训练模型的数据和要预估的数据必须是类似的,这里是前提,也是很多算法推导的前提。

           如何预估,这里举一个简单地例子,首先预估,肯定是根据知道的东西预估不知道的,比如,预估房价,你需要知道房子的位置、大小、年代等,这些是数据的特征,这些和房价都有着关系,但是是什么样的关系,就是我们要来学习的。预估房价用线性回归比较合适,有点懵逼,线性回归是什么东西,为什么用他合适,这里先不要问,后面的文章会详细解释,但是这里我们要搞明白的是机器如何学习,如何预估,为了简单起见,我们只是用房子的大小来进行学习和预估,我们用公式  y = w*x+b, 其中y就是房子的价格,x是房子的大小,w和b是未知的参数,我们学习的就是这两个参数,这个两个参数学习到了,我们的学习任务也就结束了,就可以使用这个公式来预估房子的价格了,那如何来学习,首先,我们需要有一些数据,这些数据有房子的大小和现在的售价,也就是知道房子的大小和售价,学习的方式,就是,我们先给w和b任意两个值,将房子的大小带进去,会得到一个预估的房价,这个房价肯定和数据中的房价不同,那么到了最关键的一步了,调参,这里也是我在学习机器学习前一直不懂的地方,就是机器是如何学习的,学习具体体现在了那里,其实学习就是体现在了这里,比如房价是100(单位是万),房子大小是80(平米) 一开始给了w为1,b为2,这时预估出来的房价是82,比真实的房价少,这时应该如何调参呢,从公式中可以看出,w越大,预估的房价也越高,b越大,预估的房价越低,现在需要预估的大一些才能和真实的相同,那么我们就需要将w和b都调一些,那给w为1.5,b为3,那么预估的房价为123,比真实的房价又高了,那下一步调整是不是有需要小一些,这个调整参数的过程就是学习的过程,当然你肯定有很多疑问,如何判断参数往大调还是如何往小调,每次调多少合适,调到什么程度就不需要再调了,等等,这一篇文章仅仅是机器学习的初识,不深入讲解,之后,我会分每个篇配图片和例子进行讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值