【机器学习课程-华盛顿大学】1、A Case Study 1.1 Regression:房价预测
Regression
回归在机器学习中占用十分重要的地位,可以用来预测、分类等。
Linear regression model
- 根据给出的数据,找出一条直线来拟合。
- 如何找到我们想要的直线。找出w使得残差平方和最小。
增加更多的特征使用更高次拟合
- 二次拟合y= w0+w1x+w2x^2
- 甚至更多项拟合
- 这是十三次项的拟合结果,虽然使得残差平方和最小,但是并不是满意的结果,因为这样导致了过拟合问题,我们处理问题不能仅限于手中的这些资料
如何选择更好的拟合(处理过拟合问题)
- 将数据分为测试集和训练集
- 删除一部分点->测试集
- 保留的点->训练集
- 增加复杂度可以减少训练集的误差,但是到一定的程度会增加测试集的误差
## 增加更多的特征来评价
- bathrooms的数量
整体思想
代码部分
使用graphlab
- 创建测试集和训练集
import graphlab
sales = graphlab.SFrame('home_data.sframe')#导入数据
train_data, test_data = sales.random_split(.8,seed=0)#0.8的训练集,随机种子可以是任意数
- 创建Linear Regression model
my_model = graphlab.linear_regression.create(train_data,target='price',feartures = ['sqft_living']
- 评估模型
my_model.evaluate(test_data)#返回最大误差和rmse(均方根误差)
- 增加feature只需要将features参数替换即可,一般而言features越多模型误差越小