中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
sklearn不夠用?嘗試更高級的機(jī)器學(xué)習(xí)擴(kuò)展庫:mlxtend

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

Author:louwill

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

     mlxtend主要包括以下模塊:

  • 分類器

  • 聚類器

  • 數(shù)據(jù)

  • 評估方法

  • 特征提取

  • 特征選擇

  • 文件讀寫

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

  • 常見概念

  • 圖像

  • 數(shù)學(xué)

  • 繪圖

  • 預(yù)處理

  • 回歸器

  • 文本

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

分類器

     mlxtend提供了多種分類和回歸算法api,包括多層感知機(jī)、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的繪圖模塊提供了各種機(jī)器學(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ù)進(jìn)行轉(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.github.io/mlxtend/

GitHub源碼地址:

https://github.com/rasbt/mlxtend

參考資料:

http://rasbt.github.io/mlxtend/user_guide

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python之Sklearn使用教程
「周末AI課堂」非參模型初步(代碼篇)機(jī)器學(xué)習(xí)你會遇到的“坑”
Python遇見機(jī)器學(xué)習(xí) ---- 邏輯回歸 Logistic Regression
機(jī)器學(xué)習(xí)之分類算法
plot參數(shù)
【機(jī)器學(xué)習(xí)】回歸分析、過擬合、分類
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服