什么是机器学习?(三)

上一篇我们以预测房价为例,具体介绍了机器学习的方法,本篇我们将继续讨论如何确定函数中的权重。

一种找出最佳权重的笨办法如下所示:

第一步:

首先,将每个权重都设为 1.0:

def
estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
 
price = 0
  
  # 一小撮这个
 
price += num_of_bedrooms * 1.0
  
  # 一大撮那个
 
price += sqft * 1.0
  
  # 或许再加一把这个
 
price += neighborhood * 1.0
  
  # 最后,再多加一点点盐
 
price += 1.0
  
return price

第二步:

将你知道的每栋房产的数据代入函数进行运算,检验估算值与正确价格的偏离程度:

用你的程序来预测每栋房屋的价格。

比如说,如果第一套房产实际成交价为 25 万美元,你的函数估价为 17.8 万美元,这一套房产你就差了 7.2 万。

现在,将你的数据集中的每套房产估价偏离值平方后求和。假设你的数据集中交易了 500 套房产,估价偏离值平方求和总计为 86,123,373 美元。这个数字就是你的函数现在的“错误”程度。

现在,将总和除以 500,得到每套房产的估价偏差的平均值。将这个平均误差值称为你函数的代价(cost)

如果你能通过调整权重,使得这个代价变为 0,你的函数就完美了。它意味着,根据输入的数据,你的程序对每一笔房产交易的估价都是分毫不差。所以这就是我们的目标——通过尝试不同的权重值,使代价尽可能的低。

第三步:

通过尝试所有可能的权重值组合,不断重复第二步。哪一个权重组合的代价最接近于 0,你就使用哪个。当你找到了合适的权重值,你就解决了问题!

现在,让我们回想一下刚才你做了些什么。你拿到了一些数据,将它们输入至三个泛型的、简单的步骤中,最后你得到了一个可以对你所在区域任何房屋进行估价的函数。

下面的一些事实可能会让你更兴奋:

1. 过去 40 年来,很多领域(如语言学、翻译学)的研究表明,这种泛型学习算法已经超过了那些真人尝试明确规则的方法。机器学习的“笨”办法终于打败了人类专家。

2. 你最后写出的程序是很笨的,它甚至不知道什么是“面积”和“卧室数量”。它知道的只是通过改变数字来得到正确的答案。

3. 你可能会对“为何一组特殊的权重值会有效”一无所知。你只是写出了一个你实际上并不理解却能证明有效的函数。

4. 试想,如果你的预测函数输入的参数不是“面积”和“卧室数量”,而是一列数字,每个数字代表了你车顶安装的摄像头捕捉的画面中的一个像素。然后,假设预测的输出不是“价格”而是“方向盘转动角度”,这样你就得到了一个程序可以自动操纵你的汽车了!

如此,我们找到了一种确定权重的“笨”方法,其实,数学家有一些比较聪明的办法,下一篇我们将讲述如何用聪明的办法优化权重。

什么是机器学习?(四)

作者:Adam Geitgey

原文:https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471#.ak1of1xbg

翻译:巡洋舰科技——赵95 


相关文章:

什么是机器学习?(一)

什么是机器学习?(二)

什么是机器学习?(四)

什么是机器学习?(五)

猜你喜欢

转载自blog.csdn.net/hajk2017/article/details/81097302
今日推荐