深度學習詳解之初試機器學習

2022-10-04 13:00:15 字數 2160 閱讀 6861

機器學習可應用在各個方面,本篇將在系統性進入機器學習方向前,初步認識機器學習,利用線性回歸**波士頓房價;

利用線性回歸最簡單的形式**房價,只需要把它當做是一次線性函式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 年 諾貝爾獎,人的視覺系統...