一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

sklearn不夠用?嘗試更高級的機器學(xué)習(xí)擴展庫:mlxtend

 LibraryPKU 2019-11-06

機器學(xué)習(xí)

Author:louwill

     mlxtend是一款高級的機器學(xué)習(xí)擴展庫,可用于日常機器學(xué)習(xí)任務(wù)的主要工具,也可以作為sklearn的一個補充和輔助工具。

     mlxtend主要包括以下模塊:

  • 分類器

  • 聚類器

  • 數(shù)據(jù)

  • 評估方法

  • 特征提取

  • 特征選擇

  • 文件讀寫

  • 關(guān)聯(lián)算法

  • 常見概念

  • 圖像

  • 數(shù)學(xué)

  • 繪圖

  • 預(yù)處理

  • 回歸器

  • 文本

     下面分別從分類器、圖像、繪圖和預(yù)處理等幾個模塊來展示mlxtend的強大功能。

分類器

     mlxtend提供了多種分類和回歸算法api,包括多層感知機、stacking分類器、邏輯回歸等。以邏輯回歸為例:

from mlxtend.data import iris_datafrom mlxtend.plotting import plot_decision_regionsfrom mlxtend.classifier import LogisticRegressionimport matplotlib.pyplot as plt
# Loading Data
X, y = iris_data()X = X[:, [0, 3]] # sepal length and petal widthX = X[0:100] # class 0 and class 1y = y[0:100] # class 0 and class 1
# standardizeX[:,0] = (X[:,0] - X[:,0].mean()) / X[:,0].std()X[:,1] = (X[:,1] - X[:,1].mean()) / X[:,1].std()
lr = LogisticRegression(eta=0.1, l2_lambda=0.0, epochs=100, minibatches=1, # for Gradient Descent random_seed=1, print_progress=3)lr.fit(X, y)
plot_decision_regions(X, y, clf=lr)plt.title('Logistic Regression - Gradient Descent')plt.show()
plt.plot(range(len(lr.cost_)), lr.cost_)plt.xlabel('Iterations')plt.ylabel('Cost')plt.show()

圖像

     圖像模塊提供了人臉特征點提取的api,示例如下:

import imageioimport matplotlib.pyplot as pltfrom mlxtend.image import extract_face_landmarks
img = imageio.imread('test-face.png')landmarks = extract_face_landmarks(img)print(landmarks.shape)print('\n\nFirst 10 landmarks:\n', landmarks[:10])

可視化展示:

fig = plt.figure(figsize=(15, 5))ax = fig.add_subplot(1, 3, 1)ax.imshow(img)ax = fig.add_subplot(1, 3, 2)ax.scatter(landmarks[:, 0], -landmarks[:, 1], alpha=0.8)ax = fig.add_subplot(1, 3, 3)img2 = img.copy()for p in landmarks: img2[p[1]-3:p[1]+3,p[0]-3:p[0]+3,:] = (255, 255, 255)ax.imshow(img2)plt.show()

展示人臉特征點:

import numpy as npimport matplotlib.pyplot as plt
left = np.array([36, 37, 38, 39, 40, 41])right = np.array([42, 43, 44, 45, 46, 47])
fig = plt.figure(figsize=(10,10))plt.plot(landmarks[:,0], -landmarks[:,1], 'ro', markersize=8, alpha = 0.5)for i in range(landmarks.shape[0]): plt.text(landmarks[i,0]+1, -landmarks[i,1], str(i), size=14)

left_eye = np.mean(landmarks[left], axis=0)right_eye = np.mean(landmarks[right], axis=0)print('Coordinates of the Left Eye: ', left_eye)print('Coordinates of the Right Eye: ', right_eye)plt.plot([left_eye[0]], [-left_eye[1]], marker='+', color='blue', markersize=10, mew=4)
plt.plot([right_eye[0]], [-right_eye[1]], marker='+', color='blue', markersize=10, mew=4)
plt.xticks([])plt.yticks([])plt.show()
Coordinates of the Left Eye: [169.33333333 156. ]Coordinates of the Right Eye: [210.83333333 152.16666667]

繪圖

     mlxtend的繪圖模塊提供了各種機器學(xué)習(xí)輔助繪圖工具,比如分類散點圖、熱圖、決策邊界圖、多分類混淆矩陣圖等等。以多分類混淆矩陣圖為例,sklearn的plot_confusion模塊只提供了繪制二分類的混淆矩陣圖,如果想繪制多分類的混淆矩陣,嘗試使用mlxtend的plot_confusion_matrix函數(shù)。示例如下:

import matplotlib.pyplot as pltfrom mlxtend.evaluate import confusion_matrixfrom mlxtend.plotting import plot_confusion_matrix
y_target = [1, 1, 1, 0, 0, 2, 0, 3]y_predicted = [1, 0, 1, 0, 0, 2, 1, 3]
cm = confusion_matrix(y_target=y_target, y_predicted=y_predicted, binary=False)
fig, ax = plot_confusion_matrix(conf_mat=cm)plt.show()

     再來看如何繪制模型的決策邊界圖。比如我們想看看SVM在iris數(shù)據(jù)集上的分類效果,嘗試?yán)L制其決策邊界圖:

from mlxtend.plotting import plot_decision_regionsimport matplotlib.pyplot as pltfrom sklearn import datasetsfrom sklearn.svm import SVC
# Loading some example datairis = datasets.load_iris()X = iris.data[:, [0, 2]]y = iris.target
# Training a classifiersvm = SVC(C=0.5, kernel='linear')svm.fit(X, y)

# Plotting decision regionsplot_decision_regions(X, y, clf=svm, legend=2)
# Adding axes annotationsplt.xlabel('sepal length [cm]')plt.ylabel('petal length [cm]')plt.title('SVM on Iris')plt.show()

預(yù)處理

     mlxtend預(yù)處理模塊提供了各種數(shù)據(jù)標(biāo)準(zhǔn)化和歸一化方法,這里以分類變量的one-hot編碼為例。mlxtend下的one_hot可對列表或numpy數(shù)組的數(shù)據(jù)進行轉(zhuǎn)換:

from mlxtend.preprocessing import one_hotimport numpy as np# numpy arrayy = np.array([0, 1, 2, 1, 2])one_hot(y)

from mlxtend.preprocessing import one_hot# listy = [0, 1, 2, 1, 2]one_hot(y)

mlxtend其他模塊和更多功能參考官方文檔:

http://rasbt./mlxtend/

GitHub源碼地址:

https://github.com/rasbt/mlxtend

參考資料:

http://rasbt./mlxtend/user_guide

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲精品成人午夜久久| 肥白女人日韩中文视频| 欧美一级内射一色桃子| 亚洲精品偷拍视频免费观看| 久久精品色妇熟妇丰满人妻91| 少妇人妻无一区二区三区| 国产精品一区日韩欧美| 日韩国产中文在线视频| 欧美不卡高清一区二区三区| 久久精品亚洲精品一区| 欧美精品在线观看国产| 中文字幕一区二区三区中文| 都市激情小说在线一区二区三区| 久久99精品日韩人妻| 欧美午夜色视频国产精品| 久久国产精品亚州精品毛片| 亚洲欧美日韩熟女第一页| 五月激情综合在线视频| 欧美日韩中黄片免费看| 亚洲视频一级二级三级| 国产一区二区精品高清免费| 国产精品日本女优在线观看| 欧美美女视频在线免费看| 亚洲成人黄色一级大片| 亚洲精品中文字幕欧美| 欧美成人国产精品高清| 日本熟女中文字幕一区| 国产在线一区二区三区不卡| 99久久成人精品国产免费| 国产成人精品久久二区二区| 91亚洲国产—区=区a| 少妇熟女亚洲色图av天堂| 日本在线不卡高清欧美 | 日本黄色美女日本黄色| 日本午夜免费福利视频| 欧美午夜色视频国产精品| 日本女人亚洲国产性高潮视频 | 日本加勒比在线观看一区| 日本女优一区二区三区免费| 久久永久免费一区二区| 午夜精品国产精品久久久|