使用Python進行機器學習入門


在本文中,我們將學習使用Python 3.x(或更早版本)進行機器學習的基礎知識。

首先,我們需要使用現有的庫來設定機器學習環境。

>>> pip install numpy
>>> pip install scipy
>>> pip install matplotlib
>>> pip install scikit-learn

機器學習處理的是對經驗和事實的研究,並根據提供的意圖進行預測。資料庫越大,機器學習模型就越好。

機器學習流程

  • 資料清洗
  • 饋送資料集
  • 模型訓練
  • 資料集測試
  • 模型實現


現在讓我們確定哪個庫用於什麼目的:

NumPy - 為大型多維列表和矩陣新增支援,以及大量用於對這些輸入陣列進行運算的數學函式。

SciPy - 一個免費的開源Python庫,用於科學/數學計算。它包含用於演算法最佳化、資料整合、插值、一些特殊函式和線性代數的模組。

Matplotlib - 用於建立圖表和圖形的庫。它允許繪製資料,以便更好地瞭解模型。

Scikit-learn - 它具有各種分類、聚類和迴歸演算法,以井然有序的方式分配和組織資料。

現在,讓我們藉助scikit-learn建立一個基本的機器學習模型。在這裡,我們將使用scikit-learn中提供的內建資料集,即iris和digits資料集。

from sklearn import datasets
iris = datasets.load_iris()
digits = datasets.load_digits()

現在,要檢視資料集中的資料,我們使用

print(digits.data)


[[ 0. 0. 5. ... 0. 0. 0.]
[ 0. 0. 0. ... 10. 0. 0.]
[ 0. 0. 0. ... 16. 9. 0.]
...
[ 0. 0. 1. ... 6. 0. 0.]
[ 0. 0. 2. ... 12. 0. 0.]
[ 0. 0. 10. ... 12. 1. 0.]]

.target 函式允許我們檢視我們希望模型學習的內容。

digits.target


array([0, 1, 2, ..., 8, 9, 8])

要訪問digits資料集的形狀,我們使用

digits.images[0]


array([[ 0., 0., 5., 13., 9., 1., 0., 0.],
   [ 0., 0., 13., 15., 10., 15., 5., 0.],
   [ 0., 3., 15., 2., 0., 11., 8., 0.],
   [ 0., 4., 12., 0., 0., 8., 8., 0.],
   [ 0., 5., 8., 0., 0., 9., 8., 0.],
   [ 0., 4., 11., 0., 1., 12., 7., 0.],
   [ 0., 2., 14., 5., 10., 12., 0., 0.],
   [ 0., 0., 6., 13., 10., 0., 0., 0.]])

現在讓我們轉到學習和預測部分。

from sklearn import svm
clf = svm.SVC(gamma=0.001, C=100.)

這裡的SVC是支援向量分類,它充當我們模型的內建估計器。

clf.fit(digits.data[:-1], digits.target[:-1])
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape='ovr', degree=3, gamma=0.001,
kernel='rbf', max_iter=-1, probability=False, random_state=None,
shrinking=True, tol=0.001, verbose=False)

首先,我們需要使用fit方法將資料集饋送到模型,以便我們的模型可以學習。在這裡,我們將所有影像都作為訓練資料饋送,除了最後一幅影像,我們將將其用於測試。

現在,我們的模型經過訓練後,我們可以使用.predict函式預測測試資料的輸出。

clf.predict(digits.data[-1:])
array([8])

現在,我們的模型經過訓練後,我們可以計算模型的效率和時間週期。

結論

在本文中,我們學習了機器學習的一些基礎知識以及在Python中實現它的一些常用庫。

更新於:2019年8月28日

252 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.