|金钱能让人更快乐吗?手把手教你用机器学习找到答案( 二 )
对于线性回归问题 , 通常的选择是使用成本函数来衡量线性模型的预测与训练实例之间的差距 , 目的在于尽量使这个差距最小化 。
这正是线性回归算法的意义所在:通过你提供的训练样本 , 找出最符合提供数据的线性模型的参数 , 这称为训练模型 。 在这个案例中 , 算法找到的最优参数值为θ0 = 4.85和θ1 = 4.91×10^(-5) 。
注意:令人困惑的是 , 同一个词“模型”可以指模型的一种类型(例如 , 线性回归) , 到一个完全特定的模型架构(例如 , 有一个输入和一个输出的线性回归) , 或者到最后可用于预测的训练模型(例如 , 有一个输入和一个输出的线性回归 , 使用参数θ0 = 4.85和θ1 = 4.91×10^(-5)) 。 模型选择包括选择模型的类型和完全指定它的架构 。 训练一个模型意味着运行一种寻找模型参数的算法 , 使其最适合训练数据(希望能对新的数据做出好的预测) 。
现在 , (对于线性模型而言)模型基本接近训练数据 , 如图1-19所示 。
本文插图
▲图1-19:最拟合训练数据的线性模型
现在终于可以运行模型来进行预测了 。 例如 , 你想知道塞浦路斯人有多幸福 , 但是经合组织的数据没有提供答案 。 幸好你有这个模型可以做出预测:先查查塞浦路斯的人均GDP是多少 , 发现是22 587美元 , 然后应用到模型中 , 发现生活满意度大约是4.85 + 22 587×4.91×10^(-5) = 5.96 。
为了激发你的兴趣 , 示例1-1是一段加载数据的Python代码 , 包括准备数据 , 创建一个可视化的散点图 , 然后训练线性模型并做出预测 。
- 示例1-1:使用Scikit-Learn训练并运行一个线性模型
如果稍微拉远一些 , 看看两个与之最接近的国家——葡萄牙和西班牙的生活满意度分别为5.1和6.5 。 取这三个数值的平均值 , 得到5.77 , 这也非常接近基于模型预测所得的值 。 这个简单的算法被称为k-近邻回归(在本例中 , k = 3) 。
要将前面代码中的线性回归模型替换为k-近邻回归模型非常简单 , 只需要将下面这行代码:
import sklearn.linear_model model = sklearn.linear_model.LinearRegression()替换为:
import sklearn.neighbors model = sklearn.neighbors.KNeighborsRegressor( n_neighbors=3)如果一切顺利 , 你的模型将会做出很棒的预测 。 如果不行 , 则需要使用更多的属性(例如就业率、健康、空气污染等) , 获得更多或更高质量的训练数据 , 或者选择一个更强大的模型(例如 , 多项式回归模型) 。
推荐阅读
- 黑洞|宇宙中的4大巧合,看起来让人费解,仔细想想又很合理
- 中关村在线|iPhone 12 mini续航让人抓狂:玩游戏两小时没电
- 东方网|“双十一”结束就降价?“保价”套路让人防不胜防!
- 快递|@尾款人,你双11提前收快递的快乐,靠这些连夜奋战的人帮你实现
- |在金钱有限的情况下,如何花钱才能获得最多的快乐?|打工人必读
- 技术|李彦宏:“八大关键技术” 让人工智能的梦想照进现实
- 5G|华为西班牙路演:让人们切实感受5G改变生产生活
- 特斯拉|为啥特斯拉不用整块大电池,偏用小电池组?原因让人意外
- 双十一|双十一走进机械革命生产基地,探访笔记本制造工艺,让人大开眼界
- 小研测评|iPhone12 mini预售在即,让人又爱又恨,是你的菜吗?
