机器学习实验——回归预测算法
一、目的和要求
1、理解監(jiān)督學習和回歸預測的基本概念。
2、掌握回歸預測五種算法的算法流程。
3、學會編寫回歸預測五種算法的Python編程方法。
4、會使用回歸預測評價方法測評不同的算法性能
二、設備或環(huán)境
個人電腦、Anaconda2、Python2.7.10和網(wǎng)絡
三、實驗步驟??
1、設計算法步驟和流程
2、根據(jù)算法編寫Python程序
3、運行機器學習算法程序并調(diào)試
四、內(nèi)容
針對美國波士頓地區(qū)房價數(shù)據(jù)預測問題,設計不同的回歸模型進行預測。
(一):線性回歸器
1、寫出本例中所用數(shù)據(jù)的數(shù)據(jù)描述
該數(shù)據(jù)共有506條美國波士頓地區(qū)房價的數(shù)據(jù),每條數(shù)據(jù)包括對指定房屋的13項數(shù)值型特征描述和目標房價。
2、運行Chapter_2.1.2 粘貼線性回歸器相關(guān)的實驗結(jié)果,并分別對每一個結(jié)果做出解釋
數(shù)據(jù)描述
數(shù)據(jù)分割:
?
數(shù)據(jù)標準化處理:
?使用線性回歸模型進行房價預測:
?使用回歸評價機制對模型的回歸性能做出評價:
3、在代碼中添加查看數(shù)據(jù)規(guī)模和特征維度的語句,粘貼結(jié)果。
數(shù)據(jù)規(guī)模506 特征維度13
?
4、在代碼中添加語句用于查看原始數(shù)據(jù),粘貼結(jié)果。
?
5 、對訓練集和測試集的目標值標準化之后,添加代碼查看標準化之后的y_train和y_test,對比數(shù)據(jù)標準化之后數(shù)據(jù)有什么變化?
標準化之前:
?標準化之后:
?數(shù)據(jù)標準化后將原來的數(shù)據(jù)進行重新調(diào)整,使他們具有標準正態(tài)分布的屬性
(二):支持向量機
1運行Chapter_2.1.2 粘貼支持向量機相關(guān)的實驗結(jié)果、并分別對每一個結(jié)果做出解釋
?
2 說明支持向量機中核函數(shù)的作用
答:可以通過配置不同的核函數(shù)來改變模型性能,通過某種函數(shù)計算,將原有的特征映射到更高維度的空間,從而盡可能達到新的高維度特征線性可分的程度。
3說明本例中使用的三種核函數(shù)(linear’, ‘poly’, ‘rbf’),分析這三種核函數(shù)對結(jié)果的準確率的影響。
答:liner是最準確的
????linear:線性核函數(shù),是在數(shù)據(jù)線性可分的情況下使用的,運算速度快,效果好。不足在于它不能處理線性不可分的數(shù)據(jù)。
poly:多項式核函數(shù),多項式核函數(shù)可以將數(shù)據(jù)從低維空間映射到高維空間,但參數(shù)比較多,計算量大。
rbf:高斯核函數(shù)(默認),高斯核函數(shù)同樣可以將樣本映射到高維空間,但相比于多項式核函數(shù)來說所需的參數(shù)比較少,通常性能不錯,所以是默認使用的核函數(shù)。
(三):K近鄰回歸
1運行Chapter_2.1.2 粘貼K近鄰回歸相關(guān)的實驗結(jié)果、并分別對每一個結(jié)果做出解釋
?
2 說明KNeighborsRegressor函數(shù)的作用和各參數(shù)的含義
作用:用于實現(xiàn)k近鄰算法的分類器
n_neighbors:默認情況下kneighbors查詢使用的鄰居數(shù)。就是k的值,選取最近的k個點。
Weights:默認是uniform,參數(shù)可以是uniform、distance,也可以是用戶自己定義的函數(shù)。uniform是均等的權(quán)重,就說所有的鄰近點的權(quán)重都是相等的。distance是不均等的權(quán)重,距離近的點比距離遠的點的影響大。用戶自定義的函數(shù),接收距離的數(shù)組,返回一組維數(shù)相同的權(quán)重。
3在程序中修改KNeighborsRegressor函數(shù)的兩個參數(shù),觀察和記錄模型的R_squred、MSE、MAE的變化,找到最優(yōu)的參數(shù)并記錄。
(四):回歸樹與集成模型
1運行Chapter_2.1.2 粘貼回歸樹和三種集成模型相關(guān)的實驗結(jié)果、并分別對每一個結(jié)果做出解釋
回歸樹:
集成回歸:
?
?
2 通過分析Chapter_2.1.2所有算法的性能指標,說明不同算法對波士頓房價預測的性能差異。
答:使用非線性回歸樹模型,特別是集成模型,能夠取得更高的性能表現(xiàn)
五、實驗結(jié)果與分析
六、調(diào)試和運行程序過程中產(chǎn)生的問題及采取的措施??
七、思考題
1、簡述sklearn庫中計算R_squared的兩種函數(shù)方法及其使用。
答:使用LinearRegression模型自帶的評估模塊,使用SGDRegressor模型自帶的評估模塊
2、簡述sklearn庫中class sklearn.svm.SVR()的含義,并說明其核函數(shù)的種類和使用方法。
答:SVR非線性回歸,linear:線性核函數(shù),是在數(shù)據(jù)線性可分的情況下使用的,運算速度快,效果好。不足在于它不能處理線性不可分的數(shù)據(jù)。
poly:多項式核函數(shù),多項式核函數(shù)可以將數(shù)據(jù)從低維空間映射到高維空間,但參數(shù)比較多,計算量大。
rbf:高斯核函數(shù)(默認),高斯核函數(shù)同樣可以將樣本映射到高維空間,但相比于多項式核函數(shù)來說所需的參數(shù)比較少,通常性能不錯,所以是默認使用的核函數(shù)。
使用kernel調(diào)用和函數(shù),kernel:?str參數(shù)?默認為‘rbf’
算法中采用的核函數(shù)類型,可選參數(shù)有:
‘linear’:線性核函數(shù)
‘poly’:多項式核函數(shù)
‘rbf’:徑像核函數(shù)/高斯核
‘sigmod’:sigmod核函數(shù)
‘precomputed’:核矩陣
precomputed表示自己提前計算好核函數(shù)矩陣,這時候算法內(nèi)部就不再用核函數(shù)去計算核矩陣,而是直接用你給的核矩陣。
總結(jié)
以上是生活随笔為你收集整理的机器学习实验——回归预测算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cgi备份还原(cgi备份还原失败)
- 下一篇: java 简单类继承