100天搞定機器學習|Day23-25 決策樹及Python實現
演算法部分不再細講,之前發過很多:
【算法系列】決策樹
決策樹(Decision Tree)ID3演算法
決策樹(Decision Tree)C4.5演算法
決策樹(Decision Tree)CART演算法
ID3、C4.5、CART三種決策樹的區別
實驗:
匯入需要用到的python庫
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
匯入資料集
dataset = pd.read_csv('Social_Network_Ads.csv') X = dataset.iloc[:, [2, 3]].values y = dataset.iloc[:, 4].values
將資料集拆分為訓練集和測試集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
特徵縮放
from sklearn.preprocessing import StandardScaler sc = StandardScaler() X_train = sc.fit_transform(X_train) X_test = sc.transform(X_test)
對測試集進行決策樹分類擬合
from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier(criterion = 'entropy', random_state = 0)
classifier.fit(X_train, y_train)
預測測試集的結果
y_pred = classifier.predict(X_test)
製作混淆矩陣
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred)
將訓練集結果進行視覺化
from matplotlib.colors import ListedColormap
X_set, y_set = X_train, y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('Decision Tree Classification (Training set)')
plt.xlabel('Age')
plt.ylabel('Estimated Salary')
plt.legend()
plt.show()
將測試集結果進行視覺化
from matplotlib.colors import ListedColormap
X_set, y_set = X_test, y_test
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('Decision Tree Classification (Test set)')
plt.xlabel('Age')
plt.ylabel('Estimated Salary')
plt.legend()
plt.show()
相關推薦
100天搞定機器學習|Day23-25 決策樹及Python實現
演算法部分不再細講,之前發過很多: 【算法系列】決策樹 決策樹(Decision Tree)ID3演算法 決策樹(Decision Tree)C4.5演算法 決策樹(Decision Tree)CART演算法 ID3、C4.5、CART三種決策樹的區別 實驗: 匯入需要用到的python庫 import
100天搞定機器學習|Day3多元線性迴歸
前情回顧 第二天100天搞定機器學習|Day2簡單線性迴歸分析,我們學習了簡單線性迴歸分析,這個模型非常簡單,很容易理解。實現方
100天搞定機器學習|Day4-6 邏輯迴歸
邏輯迴歸avik-jain介紹的不是特別詳細,下面再嘮叨一遍這個演算法。 1.模型 在分類問題中,比如判斷郵件是否為垃圾郵件,判斷
100天搞定機器學習|Day15 樸素貝葉斯
Day15,開始學習樸素貝葉斯,先了解一下貝爺,以示敬意。 托馬斯·貝葉斯 (Thomas Bayes),英國神學家、數學家、數理統計學家和哲學家,1702年出生於英國倫敦,做過神甫;1742年成為英國皇家學會會員;1763年4月7日逝世。貝葉斯曾是對概率論與統計的早期發展有重大影響的兩位(貝葉斯和布萊斯·帕
100天搞定機器學習|Day17-18 神奇的邏輯迴歸
前情回顧 機器學習100天|Day1資料預處理 100天搞定機器學習|Day2簡單線性迴歸分析 100天搞定機器學習|Day3多元線性迴歸 100天搞定機器學習|Day4-6 邏輯迴歸 100天搞定機器學習|Day7 K-NN 100天搞定機器學習|Day8 邏輯迴歸的數學原理 100天搞定機器學習|Day9
100天搞定機器學習|Day 30-32 微積分的本質
3blue1brown系列課程,精美的動畫,配上生動的講解,非常適合幫助建立數學的形象思維,非常值得反覆觀看: http://www.3blue1brown.com/ 嗶哩嗶哩: https://space.bilibili.com/88461692 作者還把製作視訊的用到的程式碼放到了 github
100天搞定機器學習|Day33-34 隨機森林
前情回顧 機器學習100天|Day1資料預處理 100天搞定機器學習|Day2簡單線性迴歸分析 100天搞定機器學習|Day3多元線性迴歸 100天搞定機器學習|Day4-6 邏輯迴歸 100天搞定機器學習|Day7 K-NN 100天搞定機器學習|Day8 邏輯迴歸的數學原理 100天搞定機器學習|Day9
100天搞定機器學習|Day35 深度學習之神經網路的結構
100天搞定機器學習|Day1資料預處理 100天搞定機器學習|Day2簡單線性迴歸分析 100天搞定機器學習|Day3多元線性迴歸 100天搞定機器學習|Day4-6 邏輯迴歸 100天搞定機器學習|Day7 K-NN 100天搞定機器學習|Day8 邏輯迴歸的數學原理 100天搞定機器學習|Day9-12
100天搞定機器學習|Day36用有趣的方式解釋梯度下降演算法
本文為3Blue1Brown神經網路課程講解第二部分《Gradient descent, how neural networks learn 》的學習筆記,觀看地址:www.bilibili.com/video/av16144388前文我們已經搭建了一個包含兩個隱藏層的神經網路,我們需要這樣一種演算法:網路得
100天搞定機器學習|day37 無公式理解反向傳播演算法之精髓
100天搞定機器學習(Day1-34) 100天搞定機器學習|Day35 深度學習之神經網路的結構 100天搞定機器學習|Day36 深度學習之梯度下降演算法 本篇為100天搞定機器學習之第37天,亦為3Blue1Brown《深度學習之反向傳播演算法》學習筆記。 上集提到我們
100天搞定機器學習|day38 反向傳播演算法推導
往期回顧 100天搞定機器學習|(Day1-36) 100天搞定機器學習|Day37無公式理解反向傳播演算法之精髓 上集我們學習了反向傳播演算法的原理,今天我們深入講解其中的微積分理論,展示在機器學習中,怎麼理解鏈式法則。 我們從一個最簡單的網路講起,每層只有一個神經元,圖上這個網路就是由三個權重
100天搞定機器學習|day39 Tensorflow Keras手寫數字識別
提示:建議先看day36-38的內容 TensorFlow™ 是一個採用資料流圖(data flow graphs),用於數值計算的開源軟體庫。節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯絡的多維資料陣列,即張量(tensor)。它靈活的架構讓你可以在多種平臺上展開計算,
100天搞定機器學習|day40-42 Tensorflow Keras識別貓狗
100天搞定機器學習|1-38天 100天搞定機器學習|day39 Tensorflow Keras手寫數字識別 前文我們用keras的Sequential 模型實現mnist手寫數字識別,準確率0.9713。今天我們完成day40-42的課程,實現貓、狗的識別。 本文資料集下載地址 https://down
100天搞定機器學習|day43 幾張GIF理解K-均值聚類原理
前文推薦 如何正確使用「K均值聚類」? KMeans演算法是典型的基於距離的聚類演算法,採用距離作為相似性的評價指標,即認為兩個物件的距離越近,其相似度就越大。該演算法認為簇是由距離靠近的物件組成的,因此把得到緊湊且獨立的簇作為最終目標。 K個初始聚類中心點的選取對聚類結果具有較大的影響,因為在該演算法第一步
100天搞定機器學習|Day56 隨機森林工作原理及調參實戰(信用卡欺詐預測)
本文是對100天搞定機器學習|Day33-34 隨機森林的補充 前文對隨機森林的概念、工作原理、使用方法做了簡單介紹,並提供了分類和迴歸的例項。 本期我們重點講一下: 1、整合學習、Bagging和隨機森林概念及相互關係 2、隨機森林引數解釋及設定建議 3、隨機森林模型調參實戰 4、隨機森林模型優缺點總結 整
機器學習入門之決策樹(python實現)
本次學習利用MT_Train.csv中所給的資料對MT_Test.csv中的資料進行預測,判斷客戶是否會定期存款。根據所學知識,可採用sklearn中的決策樹等方法進行程式設計。歡迎大家一起討論學習進步。 訓練集和測試集連結如下: 一. 設計思路 1.讀取訓練集和測試集檔
機器學習經典演算法詳解及Python實現--線性迴歸(Linear Regression)演算法
(一)認識迴歸 迴歸是統計學中最有力的工具之一。機器學習監督學習演算法分為分類演算法和迴歸演算法兩種,其實就是根據類別標籤分佈型別為離散型、連續性而定義的。顧名思義,分類演算法用於離散型分佈預測,如前
機器學習經典演算法詳解及Python實現--決策樹(Decision Tree)
(一)認識決策樹 1,決策樹分類原理 決策樹是通過一系列規則對資料進行分類的過程。它提供一種在什麼條件下會得到什麼值的類似規則的方法。決策樹分為分類樹和迴歸樹兩種,分類樹對離散變數做決策樹,迴歸樹對連續變數做決策樹。 近來的調查表明決策樹也是最經常使用的資料探勘演算法,它
機器學習經典演算法詳解及Python實現--K近鄰(KNN)演算法
轉載http://blog.csdn.net/suipingsp/article/details/41964713 (一)KNN依然是一種監督學習演算法 KNN(K Nearest Neighbors,K近鄰 )演算法是機器學習所有演算法中理論最簡單,最好理解的。KNN
從0到1 | 0基礎/轉行如何用3個月搞定機器學習
寫這篇文章的初衷是現在好多朋友都想了解如何入門/轉行機器學習,搭上人工智慧這列二十一世紀的快車。再加上這個問題每隔一陣子就會有人提及,因此想寫篇文章來個一勞永逸。 文章的宗旨: 指出學習中的一些誤區 提供客觀可行的學習表 給出進階學習的建議 目標讀者是: 零基礎,對人工智慧感興趣的讀者 有基