Sklearn簡介
Scikit-learn(sklearn)是機器學習中常用的第三方模塊,對常用的機器學習方法進行了封裝,包括回歸(Regression)、降維(Dimensionality Reduction)、分類(Classfication)、聚類(Clustering)等方法。當我們面臨機器學習問題時,便可根據下圖來選擇相應的方法。
Sklearn具有以下特點:
- 簡單高效的數據挖掘和數據分析工具
- 讓每個人能夠在復雜環境中重復使用
- 建立NumPy、Scipy、MatPlotLib之上
代碼如下所示:
import xlrd import matplotlib.pyplot as plt import numpy as np from sklearn import model_selection from sklearn.linear_model import LogisticRegression from sklearn import metrics data = xlrd.open_workbook('gua.xlsx') sheet = data.sheet_by_index(0) Density = sheet.col_values(6) Sugar = sheet.col_values(7) Res = sheet.col_values(8) # 讀取原始數據 X = np.array([Density, Sugar]) # y的尺寸為(17,) y = np.array(Res) X = X.reshape(17,2) # 繪制分類數據 f1 = plt.figure(1) plt.title('watermelon_3a') plt.xlabel('density') plt.ylabel('ratio_sugar') # 繪制散點圖(x軸為密度,y軸為含糖率) plt.scatter(X[y == 0,0], X[y == 0,1], marker = 'o', color = 'k', s=100, label = 'bad') plt.scatter(X[y == 1,0], X[y == 1,1], marker = 'o', color = 'g', s=100, label = 'good') plt.legend(loc = 'upper right') plt.show() # 從原始數據中選取一半數據進行訓練,另一半數據進行測試 X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.5, random_state=0) # 邏輯回歸模型 log_model = LogisticRegression() # 訓練邏輯回歸模型 log_model.fit(X_train, y_train) # 預測y的值 y_pred = log_model.predict(X_test) # 查看測試結果 print(metrics.confusion_matrix(y_test, y_pred)) print(metrics.classification_report(y_test, y_pred))