机器学习入门第一天,自己对数值预测算法的理解

来源:互联网 发布:淘宝游戏光盘 编辑:程序博客网 时间:2024/06/06 01:53

给定一个场景,比如城市房价预估,(自己随便编的数据,比如下图中上海市房价,假设还有很多条实际数据,当然价格随便写的,只是起一个相对作用)

房间大小所处地区卧室数量价格100长宁21898浦东215126浦东319
为了估测 房间大小为95,徐汇,3的价格,而这条记录表格中没有,当然我们可能刚刚学习编程的时候,不站在机器学习的角度出发,仅仅从房价规格本身出发,可能就是一大串的if语句了,然后根据房价规则,长宁地区的价格比浦东等地区的高点,卧室数量也是一个考虑因素,这样就是一个if套if再套if的过程了,在一定程度上可以结局问题,但是这个解决问题会和实际偏差较多。


其实上述的价值评估和人脑处理的思维有点相似,if的嵌套其实也体现了不同地区的对于构造最终价值的权重问题,用机器学习的方法去评估价值也是利用不同条件对应的权值不同来计算的。


假设一个人的数学特别好,他刚刚接触这个问题,也不知道每个条件占的权重到底是多少,几百条数据(各个地区,不同面积,等等),用自己的数学方法去分析这些数据,最终确定了每个条件所占的比重。


所以我们可以用电脑去模拟人脑,即让电脑去计算出每个条件的权重,


假设价值m=a*f(x)+b*g(y)+c*h(z)+d(其中a,b,c为常数,x表示房间大小,f(x)表示对应的权重,后面同理)

f(x)的值只能是一系列的离散值,比如x的取值范围的集合大小为123,则f(x)只能在有123个值,


这样 我们就将问题归结成了求a,b,c已经各个f(x),g(y),h(z)的值了


我们可以这样想,假设房间大小,地区,卧室数量的集合个数分别为n,p,q,表格中的数据最多有n*p*q个,方程是永远也解不出来的,事实上,机器学习的,特别对于预测的,永远都只是往最接近上预测。


面对如此多的不确定的数,解方程是不可能的只能换一种思路了,再来想象一下,人多大脑是怎么工作的,假设我们不知道长宁比浦东的房价高,但是我们看了数据后发现,面积基本上差不多,我是数量也一样,但是长宁的价格比浦东的要高好些,那么长宁的房价就肯定比浦东高了,我们可以得到一个地区权重排序(比如徐汇,长宁,浦东,长虹),再就是面积权重排序,人类的认知当然是面积越大,价格越高,但是机器不知道,这个也按照地区区中排序一样可以得到(156,154,153,142)等等,

 


大致知道了这些变量对房价的影响,接下来就是实际求解过程了,让人脑处理的过程是怎样的呢,这么多数据,真不好估测,或许可以这样,最初可以假定一些数值,比如长虹8,浦东7,徐汇9,100平(4),a,b,c,d各取值,0.2.0.4,0.3,4,这样对于n条记录可以计算处n各用这个算是计算出的价格m1,当然第一次计算m和m1的差别是很大的,我们可以求得m和m1的差的平方和再除以n,这样结果的小大就一定程度上反映了我们假定值得合理性,假设求得的值为0(那你可以去买彩票了)就证明现在的算法对现在已有的所有数据完全成立,用这些权值去估测位置的数据也是没问题的,当然一般的情况是方差是比较大的


对于这种情况,我们需要调整各个系数,如果计算的数值偏大,则调小abcd的值,或者各个函数对应的值,这个具体怎么去调,还没研究出来,差不多重复个5,6次就差不多了


如果您看到这了 我很抱歉,我也是第一天学习机器学习,临时的一些想法,如果后期想到了会继续分享的。欢迎交流 我的微信号aiyomajun

原创粉丝点击