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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sklearn (一) 监督学习

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

本系列博文是根據(jù)SKlearn的一個學(xué)習(xí)小結(jié),并非原創(chuàng)!

                    ?1.直接學(xué)習(xí)TensorFlow有點不知所措,感覺需要一些基礎(chǔ)知識做鋪墊。

                    ?2.之前機器學(xué)習(xí)都是理論《Ng機器學(xué)習(xí)基礎(chǔ)》+底層編寫《機器學(xué)習(xí)實戰(zhàn)》,現(xiàn)實生活基本用不到。

                    ?3.會增加一些個人總結(jié),也會刪除一些以前學(xué)過的知識。

?


??

廣義線性模型

1.1 普通最小二乘法

  然而,對于普通最小二乘的系數(shù)估計問題,其依賴于模型各項的相互獨立性。當(dāng)各項是相關(guān)的,且設(shè)計矩陣??的各列近似線性相關(guān),那么,設(shè)計矩陣會趨向于奇異矩陣,這會導(dǎo)致最小二乘估計對于隨機誤差非常敏感,產(chǎn)生很大的方差。例如,在沒有實驗設(shè)計的情況下收集到的數(shù)據(jù),這種多重共線性(multicollinearity)的情況可能真的會出現(xiàn)。

Example:

  SK的數(shù)據(jù)集介紹:https://blog.csdn.net/sa14023053/article/details/52086695,暫時用不到那么多,用到什么看什么吧

1 import matplotlib.pyplot as plt 2 import numpy as np 3 from sklearn import datasets, linear_model 4 from sklearn.metrics import mean_squared_error, r2_score 5 ''' 6 這是一個糖尿病的數(shù)據(jù)集, 7 主要包括442行數(shù)據(jù),10個屬性值 8 分別是:Age(年齡)、 9 性別(Sex)、 10 Body mass index(體質(zhì)指數(shù))、 11 Average Blood Pressure(平均血壓)、 12 S1~S6一年后疾病級數(shù)指標。 13 Target為一年后患疾病的定量指標。 14 ''' 15 diabetes = datasets.load_diabetes() 16 17 18 # 取其中的一個數(shù)據(jù)進行試驗 19 # https://blog.csdn.net/lanchunhui/article/details/49725065, 20 # np.newaxis的含義和分析,其中也可以寫作下面的形式: 21 # diabetes.data[:,2][:,np.newaxis] 或者 diabetes.data[:,2][:,None] 22 # 目的為了增加一個軸 23 diabetes_X = diabetes.data[:, np.newaxis, 2] #(442,10) 24 25 # Split the data into training/testing sets 26 diabetes_X_train = diabetes_X[:-20] 27 diabetes_X_test = diabetes_X[-20:] 28 29 # Split the targets into training/testing sets 30 diabetes_y_train = diabetes.target[:-20] 31 diabetes_y_test = diabetes.target[-20:] 32 33 # Create linear regression object 34 regr = linear_model.LinearRegression() 35 36 # Train the model using the training sets 37 regr.fit(diabetes_X_train, diabetes_y_train) 38 39 # Make predictions using the testing set 40 diabetes_y_pred = regr.predict(diabetes_X_test) 41 42 # The coefficients,打印權(quán)重 43 print('Coefficients: \n', regr.coef_) 44 # The mean squared error,損失函數(shù) 45 print("Mean squared error: %.2f" 46 % mean_squared_error(diabetes_y_test, diabetes_y_pred)) 47 # Explained variance score: 1 is perfect prediction 48 print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred)) 49 50 # Plot outputs 51 plt.scatter(diabetes_X_test, diabetes_y_test, color='black') 52 plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3) 53 54 #plt.xticks()/plt.yticks()設(shè)置軸記號 55 #現(xiàn)在是明白干嘛用的了,就是人為設(shè)置坐標軸的刻度顯示的值 56 ''' 57 plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], 58 [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$']) 59 plt.yticks([-1, 0, +1], 60 [r'$-1$', r'$0$', r'$+1$']) 61 ''' 62 #plt.xticks(()) 63 #plt.yticks(()) 64 65 plt.show()

1.2 嶺回歸

  注釋:就是加了一個懲罰項,防止過擬合~~

  Exanple和簡單線性回歸一樣的表達~~

1 >>> from sklearn import linear_model 2 >>> reg = linear_model.Ridge (alpha = .5) 3 >>> reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) 4 Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None, 5 normalize=False, random_state=None, solver='auto', tol=0.001) 6 >>> reg.coef_ 7 array([ 0.34545455, 0.34545455]) 8 >>> reg.intercept_ 9 0.13636...

1.3 貝葉斯嶺回歸

?

訓(xùn)練數(shù)據(jù):

1 >>> from sklearn import linear_model 2 >>> X = [[0., 0.], [1., 1.], [2., 2.], [3., 3.]] 3 >>> Y = [0., 1., 2., 3.] 4 >>> reg = linear_model.BayesianRidge() 5 >>> reg.fit(X, Y) 6 BayesianRidge(alpha_1=1e-06, alpha_2=1e-06, compute_score=False, copy_X=True, 7 fit_intercept=True, lambda_1=1e-06, lambda_2=1e-06, n_iter=300, 8 normalize=False, tol=0.001, verbose=False)

預(yù)測數(shù)據(jù):

>>> reg.predict ([[1, 0.]]) array([ 0.50000013])  

查看權(quán)重:

>>> reg.coef_ array([ 0.49999993, 0.49999993])

?

  

?

?

?

?

?

?

?

?

?

?

?

參考:

  http://sklearn.apachecn.org/cn/0.19.0/modules/linear_model.html

  https://blog.csdn.net/eastmount/article/details/52929765

  http://cwiki.apachecn.org/pages/viewpage.action?pageId=10814293

  http://sklearn.apachecn.org/cn/0.19.0/modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge

?

轉(zhuǎn)載于:https://www.cnblogs.com/wjy-lulu/p/9054740.html

總結(jié)

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

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