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時的結果如下:
未完待續。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
推薦閱讀:
※你永遠不知道豬隊友會在什麼時候坑了你
※Python離JIT還有多遠?
※聽說90%的人答不對這道Python題
※Python文件處理