sklearn資料庫 老魚學sklearn

2022-02-10 05:06:23 字數 2484 閱讀 4656

在做機器學習時需要有資料進行訓練,幸好sklearn提供了很多已經標註好的資料集供我們進行訓練。

本節就來看看sklearn提供了哪些可供訓練的資料集。

這些資料位於datasets中,**為:

載入波士頓房價資料,可以用於線性回歸用:

sklearn.datasets.load_boston:

載入方式為:

from sklearn.datasets import load_boston

boston = load_boston()

print(boston.data.shape)

這個資料集的shape為:

(506, 13)
也就是506行,13列,這裡13列就是影響房價的13個屬性,具體是哪些屬性可以通過如下**列印出來:

print(boston.feature_names)
輸出為:

['crim' 'zn' 'indus' 'chas' 'nox' 'rm' 'age' 'dis' 'rad' 'tax' 'ptratio'

'b' 'lstat']

你說我咋知道這個資料集中有feature_names屬性,我也不知道,我只是把上面的boston整個列印出來看到其中有這個屬性的。

from sklearn.datasets import load_boston

from sklearn.linear_model import linearregression

from sklearn.model_selection import train_test_split

# 載入房價資料

boston = load_boston()

data_x = boston.data

data_y = boston.target

# 拆分訓練集和測試集

x_train, x_test, y_train, y_test = train_test_split(data_x, data_y, test_size=0.3)

# 建立線性回歸模型

model = linearregression()

# 訓練模型

model.fit(x_train, y_train)

# 列印出**的前5條房價資料

print("**的前5條房價資料:")

print(model.predict(x_test)[:5])

# 列印出測試集中實際房價前5條資料

print("測試集中實際房價前5條資料:")

print(y_test[:5])

輸出:

**的前5條房價資料:

[ 17.44807408 27.78251433 18.8344117 17.85437188 34.47632703]

測試集中實際房價前5條資料:

[ 14.3 22.3 22.6 20.6 34.9]

以這個結果集中第一條資料為例,我們**出某房子的**是17.4萬,而實際**是14.3萬。

不過說實話,上面的房價資料只能用於測試演算法,我們真要**房價的話,原始資料的獲得沒有那麼全和規整,因此,在機器學習中,收集資料並清洗也是乙個很重要的工作,髒活累活也必須得幹,光有演算法沒啥用。

花的資料前面乙個博文已經講過了,這裡就不再重複了。

還有手寫數字識別的,這個也很常用:

也可以生成一些虛擬的資料,這些是位於官網的api文件中samples generator一節:

案例源**為:

from sklearn.datasets import make_regression

import matplotlib.pyplot as plt

# 建立100個樣本,1個屬性值的資料,輸出乙個目標值,同時也設定了噪音

x, y = make_regression(n_samples=100, n_features=1, n_targets=1, noise=10)

print(x.shape)

print(y.shape)

# 對x,y畫散點圖,看看長啥模樣的

plt.scatter(x, y)

plt.show()

輸出的資料為:

(100, 1)

(100,)

也就是x值中有100行1列,y值是100行的值。

輸出的圖形為:

看起來接近一條直線。

sklearn儲存模型 老魚學sklearn

訓練好了乙個model 以後總需要儲存和再次 所以儲存和讀取我們的sklearn model也是同樣重要的一步。比如,我們根據 樣本資料訓練了一下房價模型,當使用者輸入自己的房子後,我們就需要根據訓練好的房價模型來 使用者房子的 這樣就需要在訓練模型後把模型儲存起來,在使用模型時把模型讀取出來對輸入...

sklearn交叉驗證 老魚學sklearn

交叉驗證 cross validation 有時亦稱迴圈估計,是一種統計學上將資料樣本切割成較小子集的實用方法。於是可以先在乙個子集上做分析,而其它子集則用來做後續對此分析的確認及驗證。一開始的子集被稱為訓練集。而其它的子集則被稱為驗證集或測試集。交叉驗證是一種評估統計分析 機器學習演算法對獨立於訓...

sklearn交叉驗證3 老魚學sklearn

在上乙個博文中,我們用learning curve函式來確定應該擁有多少的訓練集能夠達到效果,就像乙個人進行學習時需要做多少題目就能擁有較好的考試成績了。本次我們來看下如何調整學習中的引數,類似乙個人是在早上7點鐘開始讀書好還是晚上8點鐘讀書好。資料仍然利用手寫數字識別作為訓練資料 from skl...