最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年04月14日 16:08:35   作者:tzc_fly  
機器學習可應用在各個方面,本篇將在系統(tǒng)性進入機器學習方向前,初步認識機器學習,利用線性回歸預測波士頓房價,讓我們一起來看看吧

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

原理簡介

利用線性回歸最簡單的形式預測房價,只需要把它當做是一次線性函數(shù)y=kx+b即可。我要做的就是利用已有數(shù)據(jù),去學習得到這條直線,有了這條直線,則對于某個特征x(比如住宅平均房間數(shù))的任意取值,都可以找到直線上對應的房價y,也就是模型的預測值。
從上面的問題看出,這應該是一個有監(jiān)督學習中的回歸問題,待學習的參數(shù)為實數(shù)k和實數(shù)b(因為就只有一個特征x),從樣本集合sample中取出一對數(shù)據(jù)(xi,yi),xi​代入kx+b得到輸出y^i,MSE可以衡量預測輸出與樣本標注的接近程度,所以把MSE作為這個問題的損失函數(shù),對于共m mm個樣本的集合,損失函數(shù)計算為:J(k,b)=1i=1∑m(yi−yi)2

一般需要遍歷數(shù)據(jù)集迭代多次,才能得到一個較好的結果

波士頓房價數(shù)據(jù)集

房價預測的實現(xiàn)將基于sklearn(scikit-learn),sklearn中有多種數(shù)據(jù)集:

  • 自帶的小數(shù)據(jù)集(packaged dataset):sklearn.datasets.load_<name>
  • 可在線下載的數(shù)據(jù)集(Downloaded Dataset):sklearn.datasets.fetch_<name>
  • 自定義生成的數(shù)據(jù)集(Generated Dataset):sklearn.datasets.make_<name>

首先從sklearn的數(shù)據(jù)集獲取內置數(shù)據(jù)集中的即波士頓房價數(shù)據(jù):

from sklearn.datasets import load_boston

導入其他功能包和模塊,導入線性回歸模型:

# 使用sklearn 中的 train_test_split 劃分數(shù)據(jù)集
from sklearn.model_selection import train_test_split
# 使用 sklearn 中的線性回歸模型進行預測
from sklearn.linear_model import LinearRegression
# 使用 matplotlib 中的 pyplot 進行可視化
import matplotlib.pyplot as plt

加載數(shù)據(jù)集:

# 加載波士頓房價數(shù)據(jù)集,返回特征X和標簽y
X, y = load_boston(return_X_y=True)
X.shape # (506, 13)
y.shape # (506,)

取出一個特征作為x:

# 只取第6列特征(方便可視化):住宅平均房間數(shù)
# 注意切片區(qū)間左閉右開
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,函數(shù)形式為:

train_test_split(train_data, train_target, test_size, random_state,shuffle)
  • test_size:浮點數(shù),在0 ~ 1之間,表示測試樣本占比
  • random_state:隨機種子,種子不同,每次調用時采樣的樣本不同;種子相同,每次調用時采樣一致
  • shuffle = True,打亂樣本數(shù)據(jù)的順序

嚴格來說,對于有監(jiān)督學習的數(shù)據(jù)集應分為訓練集,驗證集,測試集;訓練集和驗證集有標注,測試集沒有標注,泛化能力在驗證集上進行檢驗

劃分后的訓練數(shù)據(jù):

X_train.shape # (404, 1)
y_train.shape # (404,)

建立線性回歸模型

在sklearn下,機器學習建模非常方便:

  1. 實例化模型,輸入合適的超參數(shù)會使模型性能提升
  2. 輸入數(shù)據(jù)訓練
  3. 驗證模型

建立線性回歸模型如下:

# 創(chuàng)建線性回歸對象
regr = LinearRegression()
# 使用訓練集訓練模型
regr.fit(X_train, y_train)
# 在測試集上進行預測
y_pred = regr.predict(X_test)

注意到模型直到接收到訓練數(shù)據(jù),才最終確定具體形式,比如發(fā)現(xiàn)輸入數(shù)據(jù)是(404,1),才確定線性回歸形式為kx+b,而不是kx+cx+b

# 畫測試數(shù)據(jù)散點圖
plt.scatter(X_test, y_test,  color='blue')
# 畫線性回歸模型對測試數(shù)據(jù)的擬合曲線
plt.plot(X_test, y_pred, color='red')
# 顯示繪圖結果
plt.show()

fig1

打印模型參數(shù)有(注意區(qū)分參數(shù)和超參數(shù)):

# 打印斜率和截距
print('斜率:{}, 截距:{}'.format(regr.coef_,regr.intercept_))

結果為:

 斜率:[9.11163398], 截距:-34.47557789280662

到此這篇關于初試機器學習的文章就介紹到這了,更多相關初識機器學習內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

相關文章

最新評論

启东市| 河间市| 荔浦县| 天气| 南开区| 纳雍县| 睢宁县| 德钦县| 顺义区| 当阳市| 花莲县| 万年县| 二连浩特市| 边坝县| 绍兴市| 科尔| 娱乐| 禹城市| 信阳市| 洛川县| 洞头县| 来宾市| 平南县| 象山县| 敦煌市| 乌兰浩特市| 罗田县| 开远市| 铁岭市| 贡觉县| 黑水县| 铜山县| 济源市| 南充市| 平乐县| 米林县| 西林县| 虎林市| 昌都县| 南投县| 丰宁|