1 of 21

AI ML 鳶尾花分類

李柏翰

leepohan@gmail.com

15 March, 2022

*

1

2 of 21

使用機器學習的鳶尾花分類

*

2

機器學習幾乎無處不在。這一天變得越來越必要。從推薦買什麼到識別一個人,機器人,到處都是機器學習。所以在這個項目中,我們將創建機器學習的“Hello World”,即鳶尾花分類

3 of 21

Loading package

*

3

packages:

1. Numpy- 1.19.3�2. Matplotlib- 3.3.2�3. Seaborn – 0.11.1�4. Pandas – 1.2.4�5. Scikit-learn – 0.24.2

鳶尾花分類步驟:

1. 加載數據�2. 分析和可視化數據集�3. 模型訓練。�4. 模型評估。�5. 測試模型

4 of 21

鳶尾花資料集 Load

*

4

iris數據集包含三類花,VersicolorSetosaVirginica每類包含4個特徵,'Sepal length','Sepal width','Petal length','Petal width'。鳶尾花分類的目的是根據花的具體特徵來預測花。

5 of 21

鳶尾花資料集

*

5

6 of 21

Load 數據

*

6

第 1 步 - 加載數據:

首先,我們為項目導入了一些必要的包。

  • Numpy 將用於任何計算操作。
  • 我們將使用 Matplotlib 和 seaborn 進行數據可視化。
  • Pandas 有助於從各種來源加載數據,例如本地存儲、數據庫、excel 文件、CSV 文件等。
  • 接下來,我們使用 pd.read_csv() 加載數據並根據 iris 數據信息設置列名。
  • Pd.read_csv 讀取 CSV 文件。CSV 代表逗號分隔值。
  • df.head() 僅顯示數據集表中的前 5 行。

7 of 21

Analyze 數據

*

7

第 2 步 - 分析和可視化數據集:

  • 讓我們看看有關數據集的一些信息。
  • 我們可以看到關於數據的所有描述,比如平均長度和寬度、最小值、最大值、25%、50%和75%的分佈值等。
  • 讓我們可視化數據集。
  • 從這個可視化中,我們可以看出鳶尾花與其他兩朵花很好地分開。
  • 鳶尾花是最長的花。
  • 現在讓我們繪製每個類的每個特徵的平均值。
  • Np.average 計算數組的平均值。

8 of 21

code

*

8

9 of 21

code

*

9

10 of 21

A detailed classification report

*

10

11 of 21

可視化數據集

*

11

  • 這裡我們在一個列表中使用了兩個 for 循環。這稱為列表理解。
  • 列表理解有助於減少代碼行數。
  • Y_Data 是一維數組,但我們每 3 個類有 4 個特徵。所以我們將 Y_Data 重新整形為 (4, 3) 形狀的數組。
  • 然後我們改變重塑矩陣的軸。
  • 我們使用 matplotlib 在條形圖中顯示平均值。
  • 在這裡我們可以清楚地看到verginica是最長的,setosa是最短的花。

12 of 21

模型訓練

*

12

第 3 步 - 模型訓練:

  • 使用 train_test_split 我們將整個數據拆分為訓練和測試數據集。稍後我們將使用測試數據集來檢查模型的準確性。
  • 在這裡,我們從 scikit-learn 支持向量機中導入了一個支持向量分類器。
  • 然後,我們創建了一個對象並將其命名為 svn。
  • 之後,我們使用 svn.fit() 方法將訓練數據集輸入算法。

13 of 21

模型評估

*

13

第 4 步 - 模型評估:

  • 現在我們使用我們訓練好的模型從測試數據集中預測類別。
  • 然後我們檢查預測類別的準確度得分。
  • accuracy_score() 採用真實值和預測值並返回準確率百分比。

輸出:�0.9666666666666667

準確率在96%以上。現在讓我們看看基於測試數據集的詳細分類報告。

14 of 21

詳細報告

*

14

  • 分類報告給出了預測的詳細報告。
  • 精度定義了真陽性與真陽性和假陽性之和的比率。
  • 召回率定義了真陽性與真陽性和假陰性之和的比率。
  • F1-score 是準確率和召回率的平均值。
  • 支持度是指定數據集中類的實際出現次數。

15 of 21

預測

*

15

  • 這裡我們根據平均圖取一些隨機值,看看模型是否能準確預測。
  • 物種預測:['Iris-setosa' 'Iris-versicolor' 'Iris-virginica']
  • 看起來模型預測正確,因為 setosa 最短,Virginica 最長,而 versicolor 介於這兩者之間。
  • 我們可以使用 pickle 格式保存模型。
  • 我們可以使用 pickle 將模型加載到任何其他數據程序中,並使用 model.predict 使用它來預測 iris,ref(DataFlair )。

16 of 21

Hyper plane

*

16

17 of 21

SVN and optimization

*

17

18 of 21

Visualize the whole dataset

*

18

19 of 21

Plot the avarage

*

19

20 of 21

*

20

Reference:

[1] https://codertw.com/[1] https://codertw.com/程式語言[1] https://codertw.com/程式語言/466633/

[2] https://data-flair.training/blogs/iris-flower-classification/

21 of 21

*

21

Thanks for attention