手把手教您Python機器學習項目

2020-12-25 程序起點

你想用Python做機器學習,但你在入門時遇到了麻煩嗎

在這篇文章中,你將使用Python完成你的第一個機器學習項目。

在這一步一步的教程中,你將:

下載並安裝Python SciPy,獲取Python機器學習最有用的包。

加載數據集並使用統計摘要和數據可視化理解它的結構。

創建6個機器學習模型,選擇最好的,建立準確性可靠的信心。

如果您是一個機器學習初學者,並希望最終開始使用Python,那麼本教程就是為您設計的。

讓我們開始吧

2017年1月/2017年1月更新:更新以反映scikit-learn API在0.18版本中的變化。

2017年3月/更新:添加幫助設置Python環境的。

2018年4月更新:增加了一些關於隨機性和預測的有用連結。2018年9月/ 9月更新:添加到我自己託管版本的數據集的連結。

2019年2月/2月更新:更新sklearn v0.20,也更新了地塊。

2019年10月/ 10月更新:在最後添加了額外教程的連結,以便繼續。

2019年11月/ 11月更新:為每個部分添加了完整的代碼示例。

2019年12月/ 12月更新:更新示例以刪除v0.22中API變化引起的警告。

2020年1月更新:更新到刪除測試工具的代碼片段。

如何用Python開始機器學習?

學習機器學習的最佳方式是通過設計和完成小型項目。

入門時,Python可能會令人生畏

Python是一種流行的、功能強大的解釋語言。與R不同,Python是一種完整的語言和平臺,可以用於研究和開發以及開發生產系統。

還有許多模塊和庫可供選擇,為完成每個任務提供了多種方法。它會讓人感到難以承受。

開始使用Python進行機器學習的最佳方式是完成一個項目。

它將迫使您安裝並啟動Python解釋器(至少如此)。

它將給你一個鳥瞰如何逐步完成一個小項目。

它會給你信心,也許會讓你繼續自己的小項目。

初學者需要一個小的端到端項目

書本和課程令人沮喪。他們給你很多食譜和片段,但你永遠看不到它們是如何組合在一起的。

當您將機器學習應用到您自己的數據集時,您正在處理一個項目。

一個機器學習項目可能不是線性的,但它有一些眾所周知的步驟:

定義問題。

準備數據。

評估算法。

改善的結果。

現在的結果。

真正適應新平臺或工具的最好方法是端到端地完成一個機器學習項目,並涵蓋關鍵步驟。即,從加載數據,總結數據,評估算法和做出一些預測。

如果您能做到這一點,您就有了一個可以在一個又一個數據集上使用的模板。一旦您有了更多的信心,您就可以在以後填補空白,比如進一步的數據準備和改進結果任務。

你好,機器學習的世界

在一個新工具上開始一個最好的小項目是鳶尾花的分類(例如鳶尾數據集)。

這是一個很好的項目,因為它被很好地理解。

屬性是數值型的,所以您必須弄清楚如何加載和處理數據。

這是一個分類問題,允許您用一種更簡單的監督學習算法來練習。

這是一個多類分類問題(多名義),可能需要一些專門的處理。

它只有4個屬性和150行,這意味著它很小,很容易裝入內存(以及一個屏幕或A4頁面)。

所有的數值屬性都在相同的單位和相同的比例中,開始時不需要任何特殊的比例或轉換。

讓我們從Python中的hello world機器學習項目開始吧。

Python中的機器學習:分步教程

(從這裡開始)

在本節中,我們將完成一個端到端的小型機器學習項目。

以下是我們將要講的內容的概述:

安裝Python和SciPy平臺。

加載數據集。

總結數據集。

可視化數據集。

評估一些算法。

做一些預測。

1. 下載,安裝和啟動Python SciPy

在系統上安裝Python和SciPy平臺(如果還沒有安裝的話)。

我不想詳細討論這個問題,因為其他人已經這樣做了。這已經非常簡單了,特別是如果您是開發人員的話。如果你確實需要幫助,請在評論中提問。

1.1安裝SciPy庫

本教程假設Python版本為2.7或3.6以上。

您需要安裝5個關鍵庫。下面是本教程所需的Python SciPy庫列表:

scipynumpymatplotlibpandassklearn安裝這些庫的方法有很多。我的最佳建議是選擇一種方法,然後在安裝每個庫時保持一致。

scipy安裝頁面提供了在多個不同平臺(如Linux、mac OS X和Windows)上安裝上述庫的詳細說明。如果您有任何疑問或問題,請參閱本指南,它已經被成千上萬的人遵循。

在Mac OS X上,可以使用macports安裝Python 3.6和這些庫。有關macports的更多信息,請參見主頁。

在Linux上,您可以使用包管理器,比如Fedora上的yum來安裝rpm。

如果你使用的是Windows系統,或者你不太自信,我建議你安裝Anaconda的免費版本,它包含了你需要的所有東西。

注意:本教程假設您已經安裝了scikit-learn 0.20或更高版本。

1.2啟動Python並檢查版本

確保Python環境已成功安裝並按預期工作是一個好主意。

下面的腳本將幫助您測試環境。它導入本教程中需要的每個庫並列印版本。

打開命令行並啟動python解釋器:

python

我建議直接在解釋器中工作,或者編寫腳本並在命令行上運行它們,而不是大型編輯器和ide。保持簡單,關注機器學習而不是工具鏈。

輸入或複製粘貼以下腳本:

# Check the versions of libraries

# Python version

import sys

print('Python: {}'.format(sys.version))

# scipy

import scipy

print('scipy: {}'.format(scipy.__version__))

# numpy

import numpy

print('numpy: {}'.format(numpy.__version__))

# matplotlib

import matplotlib

print('matplotlib: {}'.format(matplotlib.__version__))

# pandas

import pandas

print('pandas: {}'.format(pandas.__version__))

# scikit-learn

import sklearn

print('sklearn: {}'.format(sklearn.__version__))

這裡我的OS X工作站得到的輸出:

Python: 3.6.11 (default, Jun 29 2020, 13:22:26)

[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)]

scipy: 1.5.2

numpy: 1.19.1

matplotlib: 3.3.0

pandas: 1.1.0

sklearn: 0.23.2

將上面的輸出與您的版本進行比較。

理想情況下,您的版本應該匹配或更新。api不會快速變化,所以如果您已經落後了幾個版本,也不必太擔心,本教程中的所有內容很可能仍然適用。

如果你得到一個錯誤,停止。現在是解決問題的時候了。

如果您不能幹淨地運行上述腳本,您將無法完成本教程。

我最好的建議是百度搜索您的錯誤消息或在社區張貼一個問題。

2. 加載數據

我們將使用鳶尾花數據集。這個數據集很出名,因為幾乎每個人都在機器學習和統計中使用它作為「hello world」數據集。

該數據集包含150個鳶尾花的觀測值。花有四柱,以釐米為單位。第五列是觀察到的花的種類。所有觀察到的花都屬於三種花卉之一。

在這個步驟中,我們將從CSV文件URL加載iris數據。

# Load libraries

from pandas import read_csv

from pandas.plotting import scatter_matrix

from matplotlib import pyplot

from sklearn.model_selection import train_test_split

from sklearn.model_selection import cross_val_score

from sklearn.model_selection import StratifiedKFold

from sklearn.metrics import classification_report

from sklearn.metrics import confusion_matrix

from sklearn.metrics import accuracy_score

from sklearn.linear_model import LogisticRegression

from sklearn.tree import DecisionTreeClassifier

from sklearn.neighbors import KNeighborsClassifier

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

from sklearn.naive_bayes import GaussianNB

from sklearn.svm import SVC

...

所有內容都應該加載無誤。如果出現錯誤,請停止。在繼續之前,您需要一個工作的SciPy環境。請參閱上面關於設置環境的建議。

2.2負載數據集

我們可以直接從UCI機器學習庫加載數據。

我們使用panda來加載數據。接下來,我們還將使用pandas通過描述性統計和數據可視化來研究數據。

注意,我們在加載數據時指定了每個列的名稱。這將在我們稍後研究數據時有所幫助。

...

# Load dataset

url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

dataset = read_csv(url, names=names)

數據集應該順利加載。

如果您確實有網絡問題,您可以將iris.csv文件下載到您的工作目錄中,並使用相同的方法加載它,將URL更改為本地文件名。

3.總結數據集

現在是時候看看數據了。

在這一步中,我們將以幾種不同的方式查看數據:

數據集的維數。

看看數據本身。

所有屬性的統計總結。

按類變量對數據進行細分。

不用擔心,每次查看數據都是一個命令。這些命令非常有用,您可以在未來的項目中反覆使用。

3.1數據集的維度

我們可以通過shape屬性快速了解數據包含多少實例(行)和多少屬性(列)。

# shape

print(dataset.shape)

您應該看到150個實例和5個屬性:

(150, 5)

3.2抓取數據

實際觀察你的數據也是一個好主意。

# head

print(dataset.head(20))

您應該看到數據的前20行:

sepal-length sepal-width petal-length petal-width class

0 5.1 3.5 1.4 0.2 Iris-setosa

1 4.9 3.0 1.4 0.2 Iris-setosa

2 4.7 3.2 1.3 0.2 Iris-setosa

3 4.6 3.1 1.5 0.2 Iris-setosa

4 5.0 3.6 1.4 0.2 Iris-setosa

5 5.4 3.9 1.7 0.4 Iris-setosa

6 4.6 3.4 1.4 0.3 Iris-setosa

7 5.0 3.4 1.5 0.2 Iris-setosa

8 4.4 2.9 1.4 0.2 Iris-setosa

9 4.9 3.1 1.5 0.1 Iris-setosa

10 5.4 3.7 1.5 0.2 Iris-setosa

11 4.8 3.4 1.6 0.2 Iris-setosa

12 4.8 3.0 1.4 0.1 Iris-setosa

13 4.3 3.0 1.1 0.1 Iris-setosa

14 5.8 4.0 1.2 0.2 Iris-setosa

15 5.7 4.4 1.5 0.4 Iris-setosa

16 5.4 3.9 1.3 0.4 Iris-setosa

17 5.1 3.5 1.4 0.3 Iris-setosa

18 5.7 3.8 1.7 0.3 Iris-setosa

19 5.1 3.8 1.5 0.3 Iris-setosa

3.3統計摘要

現在我們可以看一下每個屬性的摘要。

這包括計數、平均值、最小值和最大值以及一些百分比。

# descriptions

print(dataset.describe())

我們可以看到,所有的數值都有相同的尺度(釐米),範圍在0到8釐米之間。

sepal-length sepal-width petal-length petal-width

count 150.000000 150.000000 150.000000 150.000000

mean 5.843333 3.054000 3.758667 1.198667

std 0.828066 0.433594 1.764420 0.763161

min 4.300000 2.000000 1.000000 0.100000

25% 5.100000 2.800000 1.600000 0.300000

50% 5.800000 3.000000 4.350000 1.300000

75% 6.400000 3.300000 5.100000 1.800000

max 7.900000 4.400000 6.900000 2.500000

3.4類分布

現在讓我們看一下屬於每個類的實例(行)的數量。我們可以把它看成絕對計數。

...

# class distribution

print(dataset.groupby('class').size())

我們可以看到,每個類都有相同數量的實例(數據集的50%或33%)。

class

Iris-setosa 50

Iris-versicolor 50

Iris-virginica 50

3.5完整的示例

為了便於參考,我們可以將前面的所有元素綁定到一個腳本中。

下面列出了完整的示例。

# summarize the data

from pandas import read_csv

# Load dataset

url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

dataset = read_csv(url, names=names)

# shape

print(dataset.shape)

# head

print(dataset.head(20))

# descriptions

print(dataset.describe())

# class distribution

print(dataset.groupby('class').size())

4. 數據可視化

現在我們對這些數據有了一個基本的了解。我們需要用一些可視化來擴展它。

我們會看兩種類型的圖:

使用單變量圖來更好地理解每個屬性。

多變量圖,以更好地理解屬性之間的關係。

4.1一元的情節

我們從一些單變量圖開始,也就是每個單獨變量的圖。

由於輸入變量是數值型的,我們可以創建每個變量的盒狀圖和須狀圖。

...

# box and whisker plots

dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)

pyplot.show()

這讓我們對輸入屬性的分布有了更清晰的認識:

用於Iris Flowers數據集的每個輸入變量

我們還可以為每個輸入變量創建直方圖,以了解其分布情況。

...

# histograms

dataset.hist()

pyplot.show()

看起來可能有兩個輸入變量是高斯分布。注意這一點很有用,因為我們可以使用可以利用這個假設的算法。

為Iris Flowers數據集的每個輸入變量繪

4.2多元情節

現在我們可以看看變量之間的相互作用。

首先,讓我們看一下所有屬性對的散點圖。這有助於發現輸入變量之間的結構化關係。

...

# scatter plot matrix

scatter_matrix(dataset)

pyplot.show()

注意一些屬性對的對角線分組。這表明了一種高相關性和可預測的關係。

為Iris Flowers數據集的每個輸入變量的

4.3完整的示例

為了便於參考,我們可以將前面的所有元素綁定到一個腳本中。

下面列出了完整的示例。

# visualize the data

from pandas import read_csv

from pandas.plotting import scatter_matrix

from matplotlib import pyplot

# Load dataset

url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

dataset = read_csv(url, names=names)

# box and whisker plots

dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)

pyplot.show()

# histograms

dataset.hist()

pyplot.show()

# scatter plot matrix

scatter_matrix(dataset)

pyplot.show()

5. 計算算法

現在是時候創建一些數據模型,並在未見數據的基礎上評估它們的準確性了。

這是我們在這一步將要涵蓋的內容:

分離驗證數據集。

將測試工具設置為使用10倍交叉驗證。

建立多個不同的模型,以預測物種從花的測量

選擇最好的型號。

5.1創建驗證數據集

我們需要知道我們創建的模型是好的。

稍後,我們將使用統計方法來估計我們在不可見數據上創建的模型的準確性。我們還希望通過對實際未見數據的評估,對未見數據的最佳模型的準確性有一個更具體的估計。

也就是說,我們將保留一些算法無法看到的數據,我們將使用這些數據來獲得第二個獨立的想法,即最好的模型到底有多準確。

我們將把加載的數據集分成兩部分,其中80%用於訓練、評估和在模型中進行選擇,而20%將保留為驗證數據集。

...

# Split-out validation dataset

array = dataset.values

X = array[:,0:4]

y = array[:,4]

X_train, X_validation, Y_train, Y_validation = train_test_split(X, y, test_size=0.20, random_state=1)

現在在X_train和Y_train中有了用於準備模型的訓練數據,以及我們以後可以使用的X_validation和Y_validation集。

5.2測試工具

我們將使用分層的10倍交叉驗證來估計模型的準確性。

這將把我們的數據集分成10個部分,在9上訓練,在1上測試,並重複所有的訓練-測試分割組合。

分層的意思是數據集的每次摺疊或分割的目標是具有與存在於整個訓練數據集中相同的按類別示例分布。

我們通過random_state參數將random seed設置為一個固定的數字,以確保每個算法對訓練數據集的相同分割進行評估。

我們使用「準確性」這個度量來評估模型。

這是正確預測實例的數量除以數據集中實例的總數乘以100得到一個百分比(例如95%準確)。在接下來運行build和評估每個模型時,我們將使用計分變量。

5.3建立模型

我們不知道哪種算法在這個問題上比較好,也不知道使用什麼配置。

我們從圖中得到一個想法,有些類在某些維度上是部分線性可分的,所以我們期望一般的好結果。

讓我們測試6種不同的算法:

邏輯回歸(LR)

線性判別分析(LDA)

再鄰居(資訊)。

分類和回歸樹(CART)。

高斯樸素貝葉斯(NB)。

支持向量機(SVM)。

這是簡單線性(LR和LDA)、非線性(KNN、CART、NB和SVM)算法的良好混合。

讓我們構建並評估我們的模型:

...

# Spot Check Algorithms

models = []

models.append(('LR', LogisticRegression(solver='liblinear', multi_class='ovr')))

models.append(('LDA', LinearDiscriminantAnalysis()))

models.append(('KNN', KNeighborsClassifier()))

models.append(('CART', DecisionTreeClassifier()))

models.append(('NB', GaussianNB()))

models.append(('SVM', SVC(gamma='auto')))

# evaluate each model in turn

results = []

names = []

for name, model in models:

kfold = StratifiedKFold(n_splits=10, random_state=1, shuffle=True)

cv_results = cross_val_score(model, X_train, Y_train, cv=kfold, scoring='accuracy')

results.append(cv_results)

names.append(name)

print('%s: %f (%f)' % (name, cv_results.mean(), cv_results.std()))

5.4選擇最佳模型

我們現在有6個模型和每個模型的精度估計。我們需要對模型進行比較,選擇最準確的模型。

運行上面的例子,我們得到以下原始結果:

LR: 0.960897 (0.052113)

LDA: 0.973974 (0.040110)

KNN: 0.957191 (0.043263)

CART: 0.957191 (0.043263)

NB: 0.948858 (0.056322)

SVM: 0.983974 (0.032083)

注:由於算法或計算過程的隨機性,或數值精度的差異,您的結果可能會有所不同。考慮運行該示例幾次,並比較平均結果。

你得了多少分?

在下面的評論中發布你的結果。

在本例中,我們可以看到支持向量機(SVM)的估計精度得分最大,約為0.98或98%。

我們還可以創建一個模型評價結果圖,並比較每個模型的散布和平均精度。由於每種算法都被評估了10次(通過10次交叉驗證),因此每種算法都有一定的精度度量。

比較每種算法結果樣本的一種有用方法是為每個分布創建盒須圖並比較分布。

...

# Compare Algorithms

pyplot.boxplot(results, labels=names)

pyplot.title('Algorithm Comparison')

pyplot.show()

我們可以看到,盒狀圖和須狀圖被壓在範圍的頂部,許多評估達到了100%的精度,而一些則被壓到了高達80%的精度。

Box和Whisker圖比較

5.5完整的示例

為了便於參考,我們可以將前面的所有元素綁定到一個腳本中。

下面列出了完整的示例。

# compare algorithms

from pandas import read_csv

from matplotlib import pyplot

from sklearn.model_selection import train_test_split

from sklearn.model_selection import cross_val_score

from sklearn.model_selection import StratifiedKFold

from sklearn.linear_model import LogisticRegression

from sklearn.tree import DecisionTreeClassifier

from sklearn.neighbors import KNeighborsClassifier

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

from sklearn.naive_bayes import GaussianNB

from sklearn.svm import SVC

# Load dataset

url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

dataset = read_csv(url, names=names)

# Split-out validation dataset

array = dataset.values

X = array[:,0:4]

y = array[:,4]

X_train, X_validation, Y_train, Y_validation = train_test_split(X, y, test_size=0.20, random_state=1, shuffle=True)

# Spot Check Algorithms

models = []

models.append(('LR', LogisticRegression(solver='liblinear', multi_class='ovr')))

models.append(('LDA', LinearDiscriminantAnalysis()))

models.append(('KNN', KNeighborsClassifier()))

models.append(('CART', DecisionTreeClassifier()))

models.append(('NB', GaussianNB()))

models.append(('SVM', SVC(gamma='auto')))

# evaluate each model in turn

results = []

names = []

for name, model in models:

kfold = StratifiedKFold(n_splits=10, random_state=1, shuffle=True)

cv_results = cross_val_score(model, X_train, Y_train, cv=kfold, scoring='accuracy')

results.append(cv_results)

names.append(name)

print('%s: %f (%f)' % (name, cv_results.mean(), cv_results.std()))

# Compare Algorithms

pyplot.boxplot(results, labels=names)

pyplot.title('Algorithm Comparison')

pyplot.show()

6. 作出預測

我們必須選擇一種算法來進行預測。

上一節的結果表明SVM可能是最準確的模型。我們將使用這個模型作為我們的最終模型。

現在我們想了解一下驗證集上模型的準確性。

這將給我們一個獨立的最後檢查最佳模型的準確性。保留一個驗證集是很有價值的,以防在訓練期間出現紕漏,比如訓練集過擬合或數據洩漏。這兩個問題都會導致過於樂觀的結果。

6.1做出預測

我們可以在整個訓練數據集上擬合模型,並對驗證數據集進行預測。

....

# Evaluate predictions

print(accuracy_score(Y_validation, predictions))

print(confusion_matrix(Y_validation, predictions))

print(classification_report(Y_validation, predictions))

我們可以看到,在hold out數據集上,準確率是0.966或大約96%。

混淆矩陣提供了所犯錯誤的指示。

最後,分類報告根據精度、召回率、f1得分和支持程度提供了每個類的細分,顯示了優秀的結果(假設驗證數據集很小)。

0.9666666666666667

[[11 0 0]

[ 0 12 1]

[ 0 0 6]]

precision recall f1-score support

Iris-setosa 1.00 1.00 1.00 11

Iris-versicolor 1.00 0.92 0.96 13

Iris-virginica 0.86 1.00 0.92 6

accuracy 0.97 30

macro avg 0.95 0.97 0.96 30

weighted avg 0.97 0.97 0.97 30

6.3完整的示例

為了便於參考,我們可以將前面的所有元素綁定到一個腳本中。

下面列出了完整的示例。

# make predictions

from pandas import read_csv

from sklearn.model_selection import train_test_split

from sklearn.metrics import classification_report

from sklearn.metrics import confusion_matrix

from sklearn.metrics import accuracy_score

from sklearn.svm import SVC

# Load dataset

url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

dataset = read_csv(url, names=names)

# Split-out validation dataset

array = dataset.values

X = array[:,0:4]

y = array[:,4]

X_train, X_validation, Y_train, Y_validation = train_test_split(X, y, test_size=0.20, random_state=1)

# Make predictions on validation dataset

model = SVC(gamma='auto')

model.fit(X_train, Y_train)

predictions = model.predict(X_validation)

# Evaluate predictions

print(accuracy_score(Y_validation, predictions))

print(confusion_matrix(Y_validation, predictions))

print(classification_report(Y_validation, predictions))

你可以用Python進行機器學習

完成以上的教程。最多需要5到10分鐘!

你不需要了解所有的事情。(至少現在不是)您的目標是從頭到尾運行教程並獲得結果。你不需要一開始就了解所有的事情。一邊走一邊把你的問題寫下來。大量使用Python中的幫助語法(「FunctionName」)來了解你正在使用的所有函數。

你不需要知道算法是如何工作的。了解機器學習算法的局限性以及如何配置機器學習算法是非常重要的。但是學習算法可以以後再說。你需要花很長一段時間慢慢積累這個算法知識。今天,先從熟悉這個平臺開始。

您不需要成為Python程式設計師。如果您是初學者,Python語言的語法可以很直觀。就像其他語言一樣,關注函數調用(例如function())和賦值(例如a = " b ")。這樣你就能大致理解了。你是一名開發人員,你知道如何快速掌握一門語言的基礎知識。現在就開始吧,稍後再深入細節。

你不需要成為一個機器學習專家。您可以在後面了解各種算法的優點和局限性,以後還可以閱讀大量的文章來複習機器學習項目的步驟,以及使用交叉驗證評估準確性的重要性。

那麼機器學習項目中的其他步驟呢?我們沒有涵蓋機器學習項目中的所有步驟,因為這是您的第一個項目,我們需要關注關鍵步驟。也就是,加載數據,查看數據,評估一些算法,做出一些預測。在後面的教程中,我們可以看到其他數據準備和結果改進任務。

總結

在這篇文章中,你一步一步地了解了如何用Python完成你的第一個機器學習項目。

相關焦點

  • 【下載】Scikit-learn作者新書《Python機器學習導論》, 教程+代碼手把手帶你實踐機器學習算法
    Müller同時也是著名機器學習Python包scikit-learn的主要貢獻者 Andreas Muller 和 Reonomy 公司數據科學家 Sarah Guido 的新書《Python機器學習導論》(Introduction to machine learning with Python)從實戰角度出髮帶你用Python快速上手機器學習方法。
  • 手把手教你如何學習python
    如果你是一個新手,不知道從哪裡開始學習、為什麼需要機器學習、以及為什麼它最近越來越受歡迎,看本文就對了!我已經收集了所有必要信息和有用資源來幫助你學到新的知識和完成你的第一個項目。為什麼選擇Python?如果你的目標是成為一名成功的程式設計師,你需要知道很多事情。但是,對於機器學習和數據科學來說,掌握至少一種程式語言並能夠自信地運用它就足夠了。
  • 手把手 | 哇!用R也可以跑Python了
    通過安裝包,你現在可以在R上運行Python的安裝包和函數了~今天文摘菌就來教教你咋用這個reticulate包。運行下面的命令來安裝這個包、並導入到您的系統中。通過使用repl_python()函數,可以使Python和R交互。
  • 手把手 |哇!用R也可以跑Python了
    通過安裝包,你現在可以在R上運行Python的安裝包和函數了~今天文摘菌就來教教你咋用這個reticulate包。您在Python中創建的對象可在R中使用(反之亦然)。通過使用repl_python()函數,可以使Python和R交互。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。
  • Python & 機器學習項目集錦 | GitHub Top 45
    ,並從中精選出45個最具競爭力的項目。/年度開源Python項目 [平均4,078星]連結:https://medium.mybridge.co/30-amazing-python-projects-for-the-past-year-v-2018-9c310b04cdb3
  • Python機器學習(微課視頻版)——手把手教你掌握150個精彩案例|文末贈書
    《Python機器學習(微課視頻版)——手把手教你掌握150個精彩案例》由淺入深、圖文並茂地介紹了Python機器學習方面的相關內容,並通過150多個實際案例,手把手地教會讀者掌握用Python語言進行機器學習相關項目開發的方法與技巧。
  • Python機器學習·微教程
    在這個教程裡,你將學會:如何處理數據集,並構建精確的預測模型使用Python完成真實的機器學習項目這是一個非常簡潔且實用的教程,希望你能收藏,以備後面複習!接下來進入正題~這個微課程適合誰學習?如果你不符合以下幾點,也沒關係,只要花點額外時間搞清楚知識盲點就能跟上。所以這個教程既不是python入門,也不是機器學習入門。
  • 【乾貨】Python機器學習機器學習項目實戰3——模型解釋與結果分析(附代碼)
    用python完成一個完整的機器學習項目:第三部分——Interpreting a machine learning model and presenting results本系列的第一部分【1】中,討論了數據清理、數據分析、特徵工程和特徵選擇。
  • 跟著吳恩達老師學習機器學習,Python筆記分享!
    譯者:AI研習社(成語風)雙語原文連結:A Full-Length Machine Learning Course in Python for Free吳恩達在史丹福大學講授的機器學習課程堪稱Coursera上最具人氣的課程。我之前試聽了好幾門別的機器學習課程但我覺得他的在拆解概念使之變得易於理解方面做得最好。
  • 手把手教你學Python之手寫數字識別
    機器學習領域一般將此類識別問題轉化為分類問題。手寫數字識別可以轉化為10分類問題,最終結果只能是0-9這10個數字。網上手寫數字數據集很多,大小也存在差異。    更多詳細內容可查看視頻講解,手把手教你學Python(進階篇)課程完整視頻騰訊課堂連結:https://ke.qq.com/course/2026380?
  • python人工智慧項目實戰,PDF+源碼
    《python人工智慧項目 Intelligent Projects Using Python》 實施機器學習和深度學習方法,使用Python構建智能,認知AI項目主要特點如果您想使用Python從領先的AI域構建富有洞察力的項目,本書將是一個完美的伴侶。
  • 機器學習必備:前20名Python人工智慧和機器學習開源項目
    圖1:Github上的前20名Python人工智慧和機器學習項目上圖:雪花大小與貢獻者的數量成正比,顏色代表貢獻者數量的變化-紅色越高,藍色越低。雪花形狀適用於深度學習項目,適用於其他項目。下面的列表根據Github上貢獻者的數量將項目從高到低進行排列。貢獻者人數的變化與2016年KDnuggets發布的前20名Python機器學習開源項目相對。1. TensorFlow最初是由谷歌機器智能研究機構的Goole Brain Team的研究人員和工程師開發的。
  • 《Python 機器學習》-Python Machine Learning(附電子版 pdf)
    全書共16章,除了簡要介紹機器學習及Python在機器學習中的應用,還系統講述了數據分類、數據預處理、模型優化、集成學習、回歸、聚類、神經網絡、深度學習等內容。本書將機器學習背後的基本理論與應用實踐聯繫起來,通過這種方式讓讀者聚焦於如何正確地提出問題、解決問題。本書講解了如何使用Python的核心元素以及強大的機器學習庫,同時還展示了如何正確使用一系列統計模型。
  • 手把手:用Python搭建機器學習模型預測黃金價格
    新年第一天,讓我們嘗試用python搭建一個機器學習線性回歸模型,預測金價!自古以來,黃金一直作為貨幣而存在,就是在今天,黃金也具有非常高的儲藏價值,那麼有沒有可能預測出黃金價格的變化趨勢呢?我們將建立一個機器學習線性回歸模型,它將從黃金ETF (GLD)的歷史價格中獲取信息,並返回黃金ETF價格在第二天的預測值。GLD 是最大的以黃金進行直接投資的ETF交易基金。
  • Python機器學習課程(代碼與教程)
    >github:https://github.com/machinelearningmindset/machine-learning-course目錄簡介這個項目的目的是提供一個全面但簡單的用python完成機器學習的教程。
  • 《機器學習實戰:基於Scikit-Learn和TensorFlow》中文版
    機器學習的核心是「使用算法解析數據,從中學習,然後對世界上的某件事情做出決定或預測」。這意味著,與其顯式地編寫程序來執行某些任務,不如教計算機如何開發一個算法來完成任務。有三種主要類型的機器學習:監督學習、非監督學習和強化學習,所有這些都有其特定的優點和缺點。
  • 《Python 機器學習》-Python Machine Learning第一版+第二版(附電子版 pdf)
    》,機器學習與預測分析正在改變企業和其他組織的運作方式,本書將帶領讀者進入預測分析的世界。全書共16章,除了簡要介紹機器學習及Python在機器學習中的應用,還系統講述了數據分類、數據預處理、模型優化、集成學習、回歸、聚類、神經網絡、深度學習等內容。本書將機器學習背後的基本理論與應用實踐聯繫起來,通過這種方式讓讀者聚焦於如何正確地提出問題、解決問題。本書講解了如何使用Python的核心元素以及強大的機器學習庫,同時還展示了如何正確使用一系列統計模型。
  • 搞機器學習,Python 和 R 哪個更合適?
    【編者按】如果你正想構建一個機器學習項目,但卻糾結於如何選擇程式語言,這篇文章將是你所需要的。這篇文章不僅幫助你理解Python和R這兩種語言的區別,還有助於你了解各個語言多方面的優勢。那就不再浪費時間了,我們直接進入主題吧!
  • 5個火爆 GitHub 的 Python 練習項目,快來收藏!
    該項目的特點就是面向零基礎的同學,可以說是手把手的講解了 Python 的各種技術。但是如果你認為該項目只有 Python 基礎技術,那就錯了,它還包含 Python 進階知識、Linux 基礎知識、資料庫知識、Web 基礎和框架、爬蟲和數據分析、機器學習等,真的是一個超級大全的項目!