1. 程式人生 > >線性回歸——尚學堂-人工智能開發課程

線性回歸——尚學堂-人工智能開發課程

很好 pri int font logs lin 概率 one 寫博客

傳送門:人工智能視頻列表-尚學堂,點開任意一個之後會發現他們會提供系列課程整合到一起的百度網盤下載,包括視頻+代碼+資料,都是免費的

這裏:博客園小技巧,我覺得這個很好玩,可以拿來用。

第一種方法:利用numpy使用常規等式的數學方法,類似解數學方程,並利用matplot實現可視化。

有用到概率學方面的知識,比如似然什麽的,大概了解下就OK,下面是代碼:

 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3 
 4 # Create an array of the given shape and populate it with random samples from a uniform distribution over ``[0, 1)``
5 X = 2 * np.random.rand(100, 1) 6 # 認為設置Y值,np.random.randn(100, 1)是設置error,randn是標準正態分布 7 y = 4 + 3 * X + np.random.randn(100, 1) 8 # 整合X0和X1,拼接到一起了 9 X_b = np.c_[np.ones((100, 1)), X] 10 print(X_b) 11 12 # 常規等式法求解theta,求逆,轉置,點乘 13 theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y) 14 print(theta_best)
15 16 # 創建測試集裏面的X1 17 X_new = np.array([[0], [2]]) 18 X_new_b = np.c_[(np.ones((2, 1))), X_new] 19 print(X_new_b) 20 y_predict = X_new_b.dot(theta_best) 21 print(y_predict) 22 23 plt.plot(X_new, y_predict, r-) # 紅色 線圖 24 plt.plot(X, y, b.) # 藍色 點圖 25 plt.axis([0, 2, 0, 15]) #
x軸,y軸區間 26 plt.show()

想說個小技巧,選中調用的函數,快捷鍵crtl+B,或者單擊右鍵,Go To,Declaration;就可以快速轉到調用的函數那兒,註:我用的是Pycharm + Anaconda3.

第二種方法:使用sklearn框架,看著很簡單呢。主要用到的是fit,predict

import numpy as np
from sklearn.linear_model import LinearRegression

X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

lin_reg = LinearRegression()
lin_reg.fit(X, y)
print(lin_reg.intercept_, lin_reg.coef_)

X_new = np.array([[0], [2]])
print(lin_reg.predict(X_new))

還有,我覺得動手寫最重要,然後哪裏不會找哪裏,多看看相關的博客,總會用到的;而且博客很好玩,自己寫下來可以隨時再看,真的方便,也要多寫寫博客,完。

哎,這個該放到哪一類呢?

今天就是這些了,有些少,早上睡懶覺了,晚上有個考研講座要去聽(關於我們專業的,不是數學、英語,政治的),over

線性回歸——尚學堂-人工智能開發課程