構建房屋預測回歸模型
上面我們可以看見房屋的各種屬性信息
也就是房屋的各個特征
為了更形象化的展示房屋的特征,我們使用圖形來直觀展現
使用,我們前面介紹的Graphlab Canvas來展現
重定向到當前頁面展現
接下來,我們就來,構建回歸模型
被用來去擬合模型的數據叫做訓練集
那些作為真實預測的替代叫做測試集
步驟:
- 分離出訓練集合測試集
說明,這裏直接調用SFrame的random_split方法就好,
括號內的第一個參數,是隨機抽成的比例,第二個參數是是否保存這次隨機分離的兩部分的數據的狀態,,為0,表示,下次使用還是第一次分離的兩撥數據
- 構建回歸模型
我們使用graphlab的linear函數加上訓練集+目標y+特征值x這些個參數
來構建回歸模型
PROGRESS: Creating a validation set from 5 percent of training data. This may take a while. You can set ``validation_set=None`` to disable validation tracking. Linear regression: -------------------------------------------------------- Number of examples : 16480 Number of features : 1 Number of unpacked features : 1 Number of coefficients : 2 Starting Newton Method -------------------------------------------------------- +-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+ | Iteration | Passes | Elapsed Time | Training-max_error | Validation-max_error | Training-rmse | Validation-rmse | +-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+ | 1 | 2 | 1.060747 | 4337721.604860 | 1987870.095446 | 264377.961084 | 235343.331161 | +-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+ SUCCESS: Optimal solution found.
- 評估上面生成的線性回歸方程
查看測試數據集的均值:
我們使用上面生成的回歸模型進行測試;
可以看見,誤差還是很大的
- 使用圖形化查看我們的預測是什麽樣子(直觀展現)
使用第三方的畫圖庫matplotlib:畫圖工具
%matplotlib inline表示圖形畫在當前頁面,也相當於重定向
開始畫圖:
主要是:定義好X和Y軸,使用點號表示這個(x,y)
原始閃點圖+預測圖
定義了兩個函數,第一個XY表示原始測試集的閃點圖,我們用點表示;
然而,我們的第二個XY表示我們的回歸方程預測出來的值,用短橫線表示
現在,我們想要知道,我們構造出來的回歸方程的兩個參數:
截距和斜率
5.探索數據中的其他特征
自定義特征值:
開始構建
my_features_model=graphlab.linear_regression.create(train_data,target=‘price‘,features=my_features)
開始對比但特征模型與多特征模型
可以看出,多個特征值得效果比只是用單個房屋大小特征的效果要好
運行學到的模型進行房屋售價的預測
房屋實際售價(我們從原始數據集中隨機挑選了一個房屋)
這間房屋的實際售價為62萬
下面開始預測:
分析:
不一定涵蓋特征多的模型就比少特征的預測更加準確
同樣,我們再次預測一個
原始售價為220萬
開始預測:
總結:很有可能單特征的效果會比多特征的效果好,也有可能多特征的比我們的但特征的效果好,主要取決於數據
構建房屋預測回歸模型