python3機器學習經典實例-學習筆記7-分類演算法

創建一個邏輯回歸分類器

邏輯回歸是用於解決分類的一種方法。我們的目的是在給定的一組數據,我么們通過建立模型找到分類數據的分界線。

導入必要的數據包--生成樣本數據和分類標籤

import numpy as npfrom sklearn import linear_model import matplotlib.pyplot as plt# input dataX = np.array([[4, 7], [3.5, 8], [3.1, 6.2], [0.5, 1], [1, 2], [1.2, 1.9], [6, 2], [5.7, 1.5], [5.4, 2.2]])y = np.array([0, 0, 0, 1, 1, 1, 2, 2, 2])

初始化邏輯回歸分類器:

# initialize the logistic regression classifierclassifier = linear_model.LogisticRegression(solver=liblinear, C=100)

有許多輸入參數可以為前面的函數指定,但其中一些重要的參數是求解器和C.求解器參數指定演算法將用來求解方程組的解算器的類型。C參數控制正規化強度。 較低的值表示較高的調節強度。

  • 訓練數據到分類器:

# train the classifierclassifier.fit(X, y)

  • 畫出數據點和分界線

def plot_classifier(classifier, X, y): # define ranges to plot the figure: 定義畫圖的邊界長和寬擴充2個單位 x_min, x_max = min(X[:, 0]) - 1.0, max(X[:, 0]) + 1.0 y_min, y_max = min(X[:, 1]) - 1.0, max(X[:, 1]) + 1.0 # denotes the step size that will be used in the mesh grid:定義網孔的大小 step_size = 0.01 # define the mesh grid:定義網格大小的區間 x_values, y_values = np.meshgrid(np.arange(x_min, x_max, step_size), np.arange(y_min, y_max, step_size)) # compute the classifier output:計算網格區域分類結果的輸出 mesh_output = classifier.predict(np.c_[x_values.ravel(), y_values.ravel()])

x_values.ravel()---默認是行序優先

# reshape the array mesh_output = mesh_output.reshape(x_values.shape) # Plot the output using a colored plot plt.figure() # choose a color scheme you can find all the options # here: http://matplotlib.org/examples/color/colormaps_reference.html plt.pcolormesh(x_values, y_values, mesh_output, cmap=plt.cm.GnBu) # Overlay the training points on the plot 畫出訓練點 plt.scatter(X[:, 0], X[:, 1], c=y, s=80, edgecolors=black, linewidth_=1, cmap=plt.cm.Paired) # specify the boundaries of the figure圖形的邊界 plt.xlim(x_values.min(), x_values.max()) plt.ylim(y_values.min(), y_values.max()) # specify the ticks on the X and Y axes:制定刻度 plt.xticks((np.arange(int(min(X[:, 0])-1), int(max(X[:, 0])+1), 1.0))) plt.yticks((np.arange(int(min(X[:, 1])-1), int(max(X[:, 1])+1), 1.0))) plt.show()

結果輸出如下圖:

網孔的值為0.1和1時的結果如下:

step_size = 0.1

step_size = 1

未完待續。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

推薦閱讀:

你永遠不知道豬隊友會在什麼時候坑了你
Python離JIT還有多遠?
聽說90%的人答不對這道Python題
Python文件處理

TAG:機器學習 | Python |