華盛頓大學機器學習課程(個案研究法)

本課程主要是從應用入手,來解釋一些機器學習中的模型。

案例一: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')

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章