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

打開APP
userphoto
未登錄

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

開通VIP
代碼實現(xiàn)! 教學視頻!Python學習者最易上手的機器學習漫游指南

大數(shù)據(jù)文摘作品,轉(zhuǎn)載要求見文末

作者 | Conor Dewey

編譯 | 竹子,徐凌霄,Aileen


導讀:半路出山想迅速上手Python做機器學習?這篇文章就是你需要的實用指南。

毋庸置疑,近來機器學習人氣日益高漲,逐漸在流行詞榜單上占據(jù)一席之地。機器學習算法繁多,到底該選擇哪一種處理相關數(shù)據(jù)是困擾很多學習者的問題。本文將以一種清晰簡明的方式,解釋并實踐最常見的幾種機器學習算法。

接下來,我們將羅列8種最常見火爆的機器學習算法,通過Python,將它們分別適用同一個經(jīng)典數(shù)據(jù)集Iris(線性回歸和邏輯回歸除外),進而分辨出不同算法在預測準確率、模型建立過程、對數(shù)據(jù)集的使用方式等方向的異同。每一種算法后都將附上Python實現(xiàn)代碼和演示視頻。

8大算法

本文中將覆蓋共8種不同的機器學習算法(后續(xù)會有更多)。閱讀時本指南時,你可以自由的隨意翻翻或跳過任何一個已經(jīng)熟悉的算法。請根據(jù)著個人需求使用這份指南。閑話少說,本文將分為以下及部分。

1.線性回歸

2.邏輯回歸

3.決策樹

4.支持向量機

5.KNN 臨近算法

6.隨機森林

7. K-Means聚類

8.主成分分析

若嘗試使用他人的代碼時,結(jié)果你發(fā)現(xiàn)需要三個新的模塊包而且本代碼是用舊版本的語言寫出的,這將讓人感到無比沮喪。為了大家更加方便,我將使用Python3.5.2并會在下方列出了我在做這些練習前加載的模塊包。我也從UCI機器學習庫中下載了Diabetes和Iris數(shù)據(jù)集作為樣本數(shù)據(jù)。

如果你希望跳過這些內(nèi)容,僅想看看全部代碼,你可以直接前往Github上查看(https://github.com/conordewey3/HitchHikers-Guide-Machine-Learning)

線性回歸

講解

線性回歸應該是機器學習原理中最流行也是最不受重視的算法了。在比較模型表現(xiàn)時,許多數(shù)據(jù)科學家總是會忽略這一事實,即比起復雜更應該選擇簡單的方法。

總之,線性回歸是一種基于連續(xù)型變量進行預測的有監(jiān)督學習算法。線性回歸適用范圍廣泛,它既能對單一變量做回歸(簡單線性回歸)也可以對多維特征做回歸(多元線性回歸)。他的工作原理是,對變量分配最佳權重以產(chǎn)生的一條直線(ax+b)用于預測結(jié)果。請查看以下視頻了解更多詳盡內(nèi)容。


現(xiàn)在你應該已經(jīng)掌握了線性回歸的概念,接下來讓我們看看怎樣在Python中實現(xiàn)它。


準備工作

  1. from sklearn import linear_model

  1. df = pd.read_csv(‘linear_regression_df.csv’)

  1. df.columns = [‘X’, ‘Y’]

  1. df.head()

可視化

  1. sns.set_context(“notebook”, font_scale=1.1)

  1. sns.set_style(“ticks”)

  1. sns.lmplot(‘X’,’Y’, data=df)

  1. plt.ylabel(‘Response’)

  1. plt.xlabel(‘Explanatory’)

實現(xiàn)

  1. linear = linear_model.LinearRegression()

  1. trainX = np.asarray(df.X[20:len(df.X)]).reshape(-1, 1)

  1. trainY = np.asarray(df.Y[20:len(df.Y)]).reshape(-1, 1)

  1. testX = np.asarray(df.X[:20]).reshape(-1, 1)

  1. testY = np.asarray(df.Y[:20]).reshape(-1, 1)

  1. linear.fit(trainX, trainY)

  1. linear.score(trainX, trainY)

  1. print(‘Coefficient: \n’, linear.coef_)

  1. print(‘Intercept: \n’, linear.intercept_)

  1. print(‘R2 Value: \n’, linear.score(trainX, trainY))

  1. predicted = linear.predict(testX)


邏輯回歸

講解

邏輯回歸是有監(jiān)督分類算法的一種,對預測離散變量非常有效。一種典型的用法是用邏輯回歸方程預測事件在0到1之間發(fā)生的概率。

當我第一次學習邏輯回歸時,以為是這只是一個小眾工具,并沒有引起十分的注意。后來我才發(fā)現(xiàn),這種想法真是大錯特錯。邏輯回歸的一些潛在概念在機器學習其他算法例如神經(jīng)網(wǎng)絡中也有用到。請大家牢記這一點,然后查看下面的視頻了解更多內(nèi)容。


現(xiàn)在你已經(jīng)掌握了邏輯回歸的一些概念,讓我們在Python中加以實現(xiàn)。

準備工作

  1. from sklearn.linear_model import LogisticRegression

  1. df = pd.read_csv(‘logistic_regression_df.csv’)

  1. df.columns = [‘X’, ‘Y’]

  1. df.head()

可視化

  1. sns.set_context(“notebook”, font_scale=1.1)

  1. sns.set_style(“ticks”)

  1. sns.regplot(‘X’,’Y’, data=df, logistic=True)

  1. plt.ylabel(‘Probability’)

  1. plt.xlabel(‘Explanatory’)

實現(xiàn)

  1. logistic = LogisticRegression()

  1. X = (np.asarray(df.X)).reshape(-1, 1)

  1. Y = (np.asarray(df.Y)).ravel()

  1. logistic.fit(X, Y)

  1. logistic.score(X, Y)

  1. print(‘Coefficient: \n’, logistic.coef_)

  1. print(‘Intercept: \n’, logistic.intercept_)

  1. print(‘R2 Value: \n’, logistic.score(X, Y))


決策樹

講解

決策樹也是有監(jiān)督學習的一種,即可用于分類也可用于回歸。在我的經(jīng)驗里,他們主要用于分類。模型先接受輸入的一種情況,然后沿著樹枝向下走,依據(jù)設計的條件檢測重要變量。根據(jù)結(jié)果,選擇繼續(xù)往左邊的子枝走還是往右邊的子枝走,如此重復。一般整個過程中,最重要的特征會更靠近樹的根部。

決策樹正變得越來越受歡迎,而且任何項目的數(shù)據(jù)科學家都能用它作為一種強分類算法,尤其與隨機是森林,Boosting 算法和Bagging 算法一起使用時。再一次,使用下方的視頻更深入了解決策樹的基礎功能。


現(xiàn)在你知道決策樹以及它怎樣運作了,讓我們?nèi)ython中實踐一下。

準備工作

  1. from sklearn import tree

  1. df = pd.read_csv(‘iris_df.csv’)

  1. df.columns = [‘X1’, ‘X2’, ‘X3’, ‘X4’, ‘Y’]

  1. df.head()

實現(xiàn)

  1. from sklearn.cross_validation import train_test_split

  1. decision = tree.DecisionTreeClassifier(criterion=’gini’)

  1. X = df.values[:, 0:4]

  1. Y = df.values[:, 4]

  1. trainX, testX, trainY, testY = train_test_split( X, Y, test_size = 0.3)

  1. decision.fit(trainX, trainY)

  1. print(‘Accuracy: \n’, decision.score(testX, testY))

可視化

  1. from sklearn.externals.six import StringIO 

  1. from IPython.display import Image

  1. import pydotplus as pydot

  1. dot_data = StringIO()

  1. tree.export_graphviz(decision, out_file=dot_data)

  1. graph = pydot.graph_from_dot_data(dot_data.getvalue())

  1. Image(graph.create_png())


支持向量機

講解

支持向量機,又稱SVM,是一種通過在不同類別的數(shù)據(jù)間生成一條分界線實現(xiàn)分類的知名的有監(jiān)督分類算法。簡單來說,通過計算最優(yōu)分割平面,使得屬于兩個不同類的數(shù)據(jù)點間隔最大,從而得到分類向量。

分類向量一般被默認或被視為線性,然而不一定非要這樣。如果核函數(shù)不是默認的高斯函數(shù)或線性函數(shù),分類向量也可以是非線性的形式。關于SVM還有很多可以介紹,請繼續(xù)觀看指導視頻。后臺回復 “代碼”2字獲取相關資源。)

現(xiàn)在你已經(jīng)了解支持向量機了,讓我們在Python中一起實踐一下。

準備工作

  1. from sklearn import svm

  1. df = pd.read_csv(‘iris_df.csv’)

  1. df.columns = [‘X4’, ‘X3’, ‘X1’, ‘X2’, ‘Y’]

  1. df = df.drop([‘X4’, ‘X3’], 1)

  1. df.head()

實現(xiàn)

  1. from sklearn.cross_validation import train_test_split

  1. support = svm.SVC()

  1. X = df.values[:, 0:2]

  1. Y = df.values[:, 2]

  1. trainX, testX, trainY, testY = train_test_split( X, Y, test_size = 0.3)

  1. support.fit(trainX, trainY)

  1. print(‘Accuracy: \n’, support.score(testX, testY))

  1. pred = support.predict(testX)

可視化

  1. sns.set_context(“notebook”, font_scale=1.1)

  1. sns.set_style(“ticks”)

  1. sns.lmplot(‘X1’,’X2', scatter=True, fit_reg=False, data=df, hue=’Y’)

  1. plt.ylabel(‘X2’)

  1. plt.xlabel(‘X1’)


KNN鄰近算法

講解

K最鄰近分類算法,或縮寫為KNN,是一種有監(jiān)督學習算法,專門用于分類。算法先關注不同類的中心,對比樣本和類中心的距離(通常用歐幾里得距離方程)。如果一個樣本中的大多數(shù)屬于某一個類別,則該樣本都歸屬于這個類別。

你已經(jīng)了解了KNN算法的內(nèi)在概念,讓我們在Python中實踐一下。

準備工作

  1. from sklearn.neighbors import KNeighborsClassifier

  1. df = pd.read_csv(‘iris_df.csv’)

  1. df.columns = [‘X1’, ‘X2’, ‘X3’, ‘X4’, ‘Y’]

  1. df = df.drop([‘X4’, ‘X3’], 1)

  1. df.head()

可視化

  1.  sns.set_context(“notebook”, font_scale=1.1)

  1. sns.set_style(“ticks”)

  1. sns.lmplot(‘X1’,’X2', scatter=True, fit_reg=False, data=df, hue=’Y’)

  1. plt.ylabel(‘X2’)

  1. plt.xlabel(‘X1’)

實現(xiàn)

  1. from sklearn.cross_validation import train_test_split

  1. neighbors = KNeighborsClassifier(n_neighbors=5)

  1. X = df.values[:, 0:2]

  1. Y = df.values[:, 2]

  1. trainX, testX, trainY, testY = train_test_split( X, Y, test_size = 0.3)

  1. neighbors.fit(trainX, trainY)

  1. print(‘Accuracy: \n’, neighbors.score(testX, testY))

  1. pred = neighbors.predict(testX)


隨機森林

講解

隨機森林是一種流行的有監(jiān)督集成學習算法。集成的意思是把許多”弱學習器”結(jié)合在一起,形成一個強預測器。在本例中,每一個隨機生成的決策樹都是一個弱學習器,放在一起成為了一個強預測器—隨機森林。后臺獲取相關視頻,介紹更多隨機森林背后的原理。

知道了隨機森林的運作原理,到了在Python中實踐的時間了。

準備工作

  1. from sklearn.ensemble import RandomForestClassifier

  1. df = pd.read_csv(‘iris_df.csv’)

  1. df.columns = [‘X1’, ‘X2’, ‘X3’, ‘X4’, ‘Y’]

  1. df.head()

實現(xiàn)

  1. from sklearn.cross_validation import train_test_split

  1. forest = RandomForestClassifier()

  1. X = df.values[:, 0:4]

  1. Y = df.values[:, 4]

  1. trainX, testX, trainY, testY = train_test_split( X, Y, test_size = 0.3)

  1. forest.fit(trainX, trainY)

  1. print(‘Accuracy: \n’, forest.score(testX, testY))

  1. pred = forest.predict(testX)


K-Means 聚類算法

講解

K-Means算法是一種流行的無監(jiān)督學習分類算法,主要用于解決聚類問題。K 是用戶預輸入的分類數(shù)量。算法先隨機選擇K個點,然后用距離算法將剩下的對象分組,最終達到最優(yōu)聚類。模型的好壞主要取決于數(shù)據(jù)科學家對K值的設定。按照慣例,后臺獲取相關視頻了解更多內(nèi)容。

現(xiàn)在我們已經(jīng)對K-Means聚類了解更多,也明白它的原理了。讓我們在Python中實現(xiàn)一下它的算法。

準備工作

  1. from sklearn.cluster import KMeans

  1. df = pd.read_csv(‘iris_df.csv’)

  1. df.columns = [‘X1’, ‘X2’, ‘X3’, ‘X4’, ‘Y’]

  1. df = df.drop([‘X4’, ‘X3’], 1)

  1. df.head()

實現(xiàn)

  1. from sklearn.cross_validation import train_test_split

  1. kmeans = KMeans(n_clusters=3)

  1. X = df.values[:, 0:2]

  1. kmeans.fit(X)

  1. df[‘Pred’] = kmeans.predict(X)

  1. df.head()

可視化

  1. sns.set_context(“notebook”, font_scale=1.1)

  1. sns.set_style(“ticks”)

  1. sns.lmplot(‘X1’,’X2', scatter=True, fit_reg=False, data=df, hue = ‘Pred’)


PCA主成分分析

講解

主成分分析(PCA)是一種降維算法,可以為數(shù)據(jù)科學家做很多事。最主要的是,當模型有成百上千個不同特征需要處理時,主成分分析能極大地減少模型計算量。這是一種無監(jiān)督模型,但使用者依然需要分析降維后的結(jié)果,確保其能保持原數(shù)據(jù)集95%左右的信息。關于主成分分析還有很多內(nèi)容可以說,所以請一定觀看以下視頻。(視頻資源,回復 “代碼”2字獲取相關資源。)

現(xiàn)在我們了解了更多主成分分析和它的原理,讓我們在Python中實踐一下。

準備工作

  1. from sklearn import decomposition

  1. df = pd.read_csv(‘iris_df.csv’)

  1. df.columns = [‘X1’, ‘X2’, ‘X3’, ‘X4’, ‘Y’]

  1. df.head()

實現(xiàn)

  1. from sklearn import decomposition

  1. pca = decomposition.PCA()

  1. fa = decomposition.FactorAnalysis()

  1. X = df.values[:, 0:4]

  1. Y = df.values[:, 4]

  1. train, test = train_test_split(X,test_size = 0.3)

  1. train_reduced = pca.fit_transform(train)

  1. test_reduced = pca.transform(test)

  1. pca.n_components_

這份輔導指南僅簡單介紹了當下流行的機器學習算法的皮毛, 希望它能在你們成為機器學習大師的旅程上有所幫助。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python深度學習教程:LSTM時間序列預測小練習—國航乘客數(shù)量預測
情感分析:使用tflearn對電影評論進行分類
使用 LSTM 進行多變量時間序列預測
K近鄰算法用作回歸的使用介紹(使用Python代碼)
KNN算法在保險業(yè)精準營銷中的應用
直播案例 | 使用KNN對新聞主題進行自動分類
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服