完成資料的預處理,接下進入分類學習中的重點–模型訓練。在前面我們得到了一批資料,現在我們需要從中提取出一部分資料作為我們訓練的資料,當然我們也可以把全部的資料作為我們訓練的資料,但是如果我們把全部的資料都拿來作為訓練就沒有資料來測試我們模型的效能了,因為訓練資料和測試資料不能重疊,不然就是作弊了,這樣效能測試結果並不能真實的反應模型的效能了。同時在提取訓練資料過程中,按照隨機的原則,不然也是作弊的行為。一般我們從資料中提取75%作為訓練資料,提取25%作為測試資料。
# 使用sklearn.cross_valiation裡的train_test_split模組用於分割資料。
from sklearn.cross_validation import train_test_split
# 隨機取樣25%的資料用於測試,剩下的75%用於構建訓練集合。
x_train, x_test, y_train, y_test = train_test_split(data[column_names[1:10]],
data[column_names[10]],
test_size=0.25,
random_state=33)
#column_names[1:10]]所要劃分的樣本的特徵集
#data[column_names[10]]所要劃分的樣本的結果
#test_size測試樣本的佔比,如果是整數的話就是測試樣本的數量
#random_state隨機數的種子
在我們得到的資料中,第0列是序號,第1到第9列是樣本的特徵,第10列是樣本的結果。
得到了訓練資料,接下來我們就需要建立並訓練模型了。在此之前需要乙個小小的資料調整–標準化資料,即將資料收縮到同乙個範圍內,比如說一丈和兩公尺的比較,在計算機中我們輸入的是1和2並沒有帶單位,這樣對計算機來說肯定是2更長,但是我們知道是一丈更長,所以我們進行比較時要先將一丈標準化為3.33公尺,又或者將2公尺標準化為0.6丈,這個是憑個人習慣。
# 從sklearn.preprocessing裡匯入standardscaler。
from sklearn.preprocessing import standardscaler
# 標準化資料,保證每個維度的特徵資料方差為1,均值為0。使得**結果不會被某些維度過大的特徵值而主導。
ss = standardscaler()
x_train = ss.fit_transform(x_train)
x_test = ss.transform(x_test)
下面利用邏輯回歸模型訓練資料。
from sklearn.linear_model import logisticregression
lr = logisticregression()
# 呼叫logisticregression中的fit函式/模組用來訓練模型引數。
lr.fit(x_train, y_train)
最終我們得到了lr這個邏輯回歸模型。 theano學習之分類學習
from future import print function import numpy as np import theano import theano.tensor as t 該函式功能用來計算準確率 def compute accuracy y target,y predict corr...
機器學習之分類學習(效能分析)
在上面我們得到了乙個邏輯回歸模型,但我們需要這個模型的效能如何,也是知道這個模型學習的成果如何,要進行期末考試。考試,顧名思義是給模型發答卷,答卷就是前面我們提取出來的測試資料,我們把測試據中的結果抽空作為標準答案,讓模型答題,最後對照標準答案給分。使用訓練好的模型lr對x test進行 結果儲存在...
機器學習之分類模型
iris 鳶尾花資料集是乙個經典資料集,在統計學習和機器學習領域都經常被用作示例。資料集內包含 3 類共 150 條記錄,每類各 50 個資料,每條記錄都有 4 項特徵 花萼長度 花萼寬度 花瓣長度 花瓣寬度,可以通過這4個特徵 鳶尾花卉屬於 iris setosa,iris versicolour...