日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

监督学习——通用线性模型

發(fā)布時間:2024/9/16 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 监督学习——通用线性模型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、何謂監(jiān)督學習

要給出監(jiān)督學習準確的定義并不容易,因為每本參考資料中都給出了不同的解釋,雖然核心的思想是相同的,但是再 寫博客的時候,總得選擇自己滿意的定義。在監(jiān)督學習這個概念上,我選擇以李航老師的統(tǒng)計學習方法中的定義作為 標準,監(jiān)督學習(supervisedlearning)的任務是一個學習模型,使模型能夠對任意給定的輸入,對其相應的輸出做出 一個好的預測(注意:這里的輸入何輸出,是指某個系統(tǒng)的輸入、輸出,與學習的輸入、輸出不同)。

1 通用線性模型

首先我們要介紹的是一組用于回歸的方法,“回歸”一詞源于最佳擬合,表示要找到最佳擬合參數(shù)集。在回歸方法中,目標值被估計為輸入變量的線性組合。在數(shù)學概念中,被稱為估計值(predicted value)。線性的回歸方程:

稱為回歸系數(shù),稱為截距。

1.1 普通最小二乘

線性回歸(LinearRegression)模型的目標是擬合一個系數(shù)為的線性模型,使得觀測變量的值與目標值之間的殘差盡可能小。在數(shù)學中,它主要解決以下形式的問題:


線性回歸把數(shù)組X,y的你和系數(shù)存儲在成員變量coef_中:

[python]?view plaincopy
  • >>>?from?sklearn?import?linear_model??
  • >>>?clf?=?linear_model.LinearRegression()??
  • >>>?clf.fit?([[0,?0],?[1,?1],?[2,?2]],?[0,?1,?2])??
  • LinearRegression(copy_X=True,?fit_intercept=True,?n_jobs=1,?normalize=False)??
  • >>>?clf.coef_??
  • array([?0.5,??0.5])??
  • 然而,最小普通二乘系數(shù)的估計和模型的獨立性相關,輸入矩陣X的列有近似的線性關系時,最小普通二乘對觀察到的數(shù)據(jù)的隨錯誤估計非常敏感,這種情況下會產(chǎn)生較大的方差。

    例子:

    • Linear Regression Example
    下面的例子僅僅使用了diabetes數(shù)據(jù)集中的第一特征,目的只是為了表明線性回歸技術的二維的擬合圖,從圖中可以看出線性回歸盡可能使數(shù)據(jù)集中觀察到數(shù)據(jù)與預測數(shù)據(jù)之間的殘差的平方最小。


    回歸系數(shù)、殘差平方、 Variance score的計算如下:

    [plain]?view plaincopy
  • 輸出:??
  • Coefficients:??
  • ?[?938.23786125]??
  • Residual?sum?of?squares:?2548.07??
  • Variance?score:?0.47??
  • [python]?view plaincopy
  • print(__doc__)??
  • ??
  • ??
  • #?Code?source:?Jaques?Grobler??
  • #?License:?BSD?3?clause??
  • ??
  • ??
  • import?matplotlib.pyplot?as?plt??
  • import?numpy?as?np??
  • from?sklearn?import?datasets,?linear_model??
  • ??
  • #?Load?the?diabetes?dataset??
  • diabetes?=?datasets.load_diabetes()??
  • ??
  • ??
  • #?Use?only?one?feature??
  • diabetes_X?=?diabetes.data[:,?np.newaxis]??
  • diabetes_X_temp?=?diabetes_X[:,?:,?2]??
  • ??
  • #?Split?the?data?into?training/testing?sets??
  • diabetes_X_train?=?diabetes_X_temp[:-20]??
  • diabetes_X_test?=?diabetes_X_temp[-20:]??
  • ??
  • #?Split?the?targets?into?training/testing?sets??
  • diabetes_y_train?=?diabetes.target[:-20]??
  • diabetes_y_test?=?diabetes.target[-20:]??
  • ??
  • #?Create?linear?regression?object??
  • regr?=?linear_model.LinearRegression()??
  • ??
  • #?Train?the?model?using?the?training?sets??
  • regr.fit(diabetes_X_train,?diabetes_y_train)??
  • ??
  • #?The?coefficients??
  • print('Coefficients:?\n',?regr.coef_)??
  • #?The?mean?square?error??
  • print("Residual?sum?of?squares:?%.2f"??
  • ??????%?np.mean((regr.predict(diabetes_X_test)?-?diabetes_y_test)?**?2))??
  • #?Explained?variance?score:?1?is?perfect?prediction??
  • print('Variance?score:?%.2f'?%?regr.score(diabetes_X_test,?diabetes_y_test))??
  • ??
  • #?Plot?outputs??
  • plt.scatter(diabetes_X_test,?diabetes_y_test,??color='black')??
  • plt.plot(diabetes_X_test,?regr.predict(diabetes_X_test),?color='blue',??
  • ?????????linewidth=3)??
  • ??
  • plt.xticks(())??
  • plt.yticks(())??
  • ??
  • plt.show()??
  • 如果X是一個大小為n行p列的矩陣,假設n>=p,則線性回歸的普通最小二乘的算法復雜度為。

    1.2 嶺回歸(Ridge regression)

    嶺回歸通過對回歸系數(shù)增加一個懲罰因子解決了如下形式的普通最小二乘問題,嶺回歸系數(shù)使得殘差平方和最小:


    是一個控制收縮率大小的參數(shù):越大,收縮率就越大,因此,回歸線數(shù)的共線性就越健壯,圖1給出了和權重weights之間的關系。



    同其他線性模型一樣,嶺回歸把數(shù)組X,y的你和系數(shù)存儲在成員變量coef_中:

    [python]?view plaincopy
  • >>>?from?sklearn?import?linear_model??
  • >>>?clf?=?linear_model.Ridge?(alpha?=?.5)??
  • >>>?clf.fit?([[0,?0],?[0,?0],?[1,?1]],?[0,?.1,?1])???
  • Ridge(alpha=0.5,?copy_X=True,?fit_intercept=True,?max_iter=None,??
  • ??????normalize=False,?solver='auto',?tol=0.001)??
  • >>>?clf.coef_??
  • array([?0.34545455,??0.34545455])??
  • >>>?clf.intercept_???
  • 0.13636...??
    • Plot Ridge coefficients as a function of the regularization
    • Classification of text documents using sparse features

    嶺回歸的復雜度與線性回歸復雜度一樣。

    1.2.1 設置正則化的參數(shù):廣義交叉驗證

    RidgeCV?的嶺回歸中實現(xiàn)了參數(shù)alpha的交叉驗證。RidgeCV與GridSearchCV的實現(xiàn)原理一樣,只是RidgeCV用的方法是廣義交叉驗證(GCV),而GridSearchCV則用的是一對一交叉驗證(leave-one-out cross-validation)。

    1.3 Lasso

    Lasso是估計稀疏系數(shù)的線性模型。Lasso總是傾向于解決參數(shù)較少的問題,并可以有效的減少解決方案依賴的變量參數(shù)。為此,Lasso及其變形 是壓縮感知領域的基礎,在特定的情況下,Lasso可以恢復非零權重的準確集合。 Lasso是由正則化參數(shù)組成的線性模型,目標函數(shù)為:

    為常數(shù),范數(shù)為參數(shù)向量的主題。
    ?Lasso使用梯度下降法擬合系數(shù),另一種實現(xiàn)方法參考?Least Angle Regression?。 >>> from sklearn import linear_model >>> reg = linear_model.Lasso(alpha = 0.1) >>> reg.fit([[0, 0], [1, 1]], [0, 1]) Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000, normalize=False, positive=False, precompute=False, random_state=None, selection='cyclic', tol=0.0001, warm_start=False) >>> reg.predict([[1, 1]]) array([ 0.8])

    例子:

    • Lasso and Elastic Net for Sparse Signals
    • Compressive sensing: tomography reconstruction with L1 prior (Lasso)
    注意?使用Lasso進行特征選擇 由于Lasso能夠處理稀疏的線性模型,因此Lasso可以用做特征選擇 ,詳細請參見?L1-based feature selection

    總結

    以上是生活随笔為你收集整理的监督学习——通用线性模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。