华盛顿大学机器学习课程(个案研究法)"/>
华盛顿大学机器学习课程(个案研究法)
本课程主要是从应用入手,来解释一些机器学习中的模型。
案例一:regression, linear regression(回归、线性回归)
这个是一个经典的预测房价的案例。假设我们有一组房子的数据,包括房子面积,房间数目,卫生间个数,以及出售价格等属性,那么如何通过这些已知数据,来预测一个房子的出售价格呢?
利用的方法就是统计学中常用的数据分析方法——线性回归。利用该方法找到最合适的模型,来对新的数据进行预测。一般情况下,会把已知的真实数据划分为两部分,一个叫训练集(training set),一个叫测试集(test set)。训练集用于训练模型,测试集用于评价模型的准确性,并根据测试结果,按需调整模型的参数,使模型更加准确。
模型代码:
首先也要导入graphlab库
import graphlab
这边因为我没有在他给的笔记文件路径下使用,而是自己新建了一个文件,但是我想用他的数据,不知道怎么描述数据路径,这里用了os库查了一下当前路径
import os
os.getcwd()
然后就返回了当前路径:
修改工作目录:
os.chdir('')#括号里的路径貌似要写\\的
得到当前路径,然后根据其格式改到数据所在路径,然后就能载入数据了。
sales = graphlab.SFrame('/home/jovyan/work/Week 2/home_data.gl/')
得到数据后,我们想在notebook下把它展示出来,不必打开新的浏览器,句式如下:
graphlab.canvas.set_target("ipynb")
sales.show(view="Scatter Plot",x="sqft_living",y="price")#散点图,x轴为面积,y轴为价格
下面开始用该数据实现一个简单的回归模型。
之前说明过,数据在做任何处理之前,都要先把它分为训练集和测试集。
分离数据:
train_data,test_data = sales.random_split(.8,seed=0)#这边要设置随机分裂的种子
构建一个线性模型
sqft_model = graphlab.linear_regression.create(train_data,target='price',features=['sqft_living'])#利用训练数据集,目标输出是price,输入特征为sqft_living。这边输入特征不选的话默认所有。
模型训练完成之后,用测试数据集进行测试
print(sqft_model.evaluate(test_data))
这里的RMSE是均方根误差.
下面看一下我们的预测模型是什么样子的
导入matplotlib包
import matplotlib.pyplot as plt
%matplotlib inline
查看模型中的相关系数:
sqft_model.get('coefficients')
观察数据里的其他特征
my_features = ['bedrooms','bathrooms','sqft_living','sqft_lot','floors','zipcode']
sales[my_features].show()
sales.show(view='BoxWhisker Plot',x='zipcode',y='price')
更多推荐
华盛顿大学机器学习课程(个案研究法)
发布评论