機器學習可應用在各個方面,本篇將在系統性進入機器學習方向前,初步認識機器學習,利用線性回歸**波士頓房價;
利用線性回歸最簡單的形式**房價,只需要把它當做是一次線性函式y=kx+b即可。我要做的就是利用已有資料,去學習得到這條直線,有了這條直線,則對於某個特徵x(比如住宅平均房間數)的任意取值,都可以找到直線上對應的房價y,也就是模型的**值。
從上面的問題看出,這應該是乙個有監督學習中的回歸問題,待學習的引數為實數k和實數b(因為就只有乙個特徵x),從樣本集www.cppcns.com合sample中取出一對資料(xi,yi),xi代入kx+b得到輸出y^i,mse可以衡量**輸出與樣本標註的接近程度,所以把mse作為這個問題的損失函式,對於共m mm個樣本的集合,損失函式計算為:j(程式設計客棧k,b)=1i=1∑m(yi−yi)2
一般需要遍歷資料集迭代多次,才能得到乙個較好的結果
房價**的實現將基於sklearn(scikit-learn),sklearn中有多種資料集:
首先從sklearn的資料集獲取內建資料集中的即波士頓房價資料:
from sklearn.datasets import load_boston
匯入其他功能包和模組,匯入線性回歸模型:
# 使用sklearn 中的 train_test_split 劃分資料集
from sklearn.modelxfbgdbna_selection import train_test_split
# 使用 sklearn 中的線性回歸模型進行**
from sklearn.linear_model import linearregression
# 使用 matplotlib 中的 pyplot 進行視覺化
import matplotlib.pyplot as plt
載入資料集:
# 載入波士頓房價資料集,返回特徵x和標籤y
x, y = load_boston(return_x_y=twww.cppcns.comrue)
x.shape # (506, 13)
y.shape # (506,)
取出乙個特徵作為x:
# 只取第6列特徵(方便視覺化):住宅平均房間數
# 注意切片區間左閉右開
x = x[:,5:6]
劃分為訓練集和測試集,測試集取20%:
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2, random_state=2020)
使用到sklearn.model_selection.train_test_split,函式形式為:
train_test_split(train_data, train_target, test_size, random_state,shuffle)
嚴格來說,對於有監督學習的資料集應分為訓練集,驗證集,測試集;訓練集和驗證集有標註,測試集沒有標註,泛化能力在驗證集上進行檢驗
劃分後的訓練資料:
x_train.shape # (404, 1)
y_train.shape # (404,)
在sklearn下,機器學習建模非常方便:
建立線性回歸模型如下:
# 建立線性回歸物件
regr = linearregression()
# 使用訓練集訓練模型
regr.fit(x_train, y_train)
# 在測試集上進行**
y_pred = regr.predict(x_test)
注意到模型直到接收到訓練資料,才最終確定具體形式,比如發現輸入資料是(404,1),才確定線性回歸形式為kx+b,而不是kx+cx+b
# 畫測試資料散點圖
plt.scatter(x_test, y_test, color='blue')
# 畫線性回歸模型對測試資料的擬合曲線
plt.plot(x_test, y_pred, color='red')
# 顯示繪圖結果
plt.show()
列印模型引數有(注意區分引數和超引數):
# 列印斜率和截距
print('斜率:{}, 截距:{}'.format(regr.coef_,regr.intercept_))
結果為:
斜率:[9.11163398], 截距:-34.47557789280662
李巨集毅機器學習 8 深度學習初試
keras keras是希臘語中牛角的意思 horn 官網 例子 學習和使用更簡單 可以把模型儲存起來方便下次訓練,需要時再載入 mnist 簡單使用 定義乙個模型 model sequential 新增input layer和第一層hidden layer input是28 28的矩陣 第一層hi...
機器學習深度學習
機器學習與深度學習,人工智慧 這些領域,如果機器需要向人學習,那麼,人是如何學習的,或者人思維是如何運作的。構 的乙個思維生態 閉環 目前機器學習人工智慧的取得較大發展是依託統計概率論。如果機器需要有自己的ai,那麼是否意味著人在創造生命。因為,生命可以不斷的延續。那麼什麼是生命,生命由那些構成,構...
機器學習 深度學習
深度學習歷程 深度學習是一種機器學習方法,給定一組輸入 值輸入或者傳出計算機資訊 它允許我們訓練人工智慧來 輸出。吳恩達 與深度學習類似的是,火箭發動機是深度學習模型,燃料是我們可以提供給這些演算法的海量資料。神經網路是一組粗略模仿人類大腦,用於模式識別的演算法。1981 年 諾貝爾獎,人的視覺系統...