天天看點

iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集

系列導讀

開始你的第一個機器學習項目|文末送書​mp.weixin.qq.com

iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集

前言

大家好,關于資料挖掘或者機器學習的理論我想大家應該都已經了解很多,而資料挖掘的工具例如

Pandas

NumPy

Sklearn

等在曆史文章都有所介紹,是以今天我們将開始第二個案例實戰也是使用非常多的

IRIS

資料集:

根據花瓣和花萼的長寬預測鸢尾花的種類。

加載資料

首先我們打開

Jupyter Notebook

導入相關庫

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import model_selection
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from pandas.plotting import scatter_matrix
           

接下來就是加載資料集,雖然在Sklearn庫中内置了IRIS資料集,但是在這我使用處理好的資料

iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集

可以看到我們一共有150條資料,每條資料的前四列對應是

花萼長度,花萼寬度,花瓣長度,花瓣寬度

,最後一列就是花的種類,現在我們就需要通過這4個特征預測鸢尾花卉屬于(

iris-setosa/iris-versicolor/iris-virginica

)中的哪一品種。

iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集

探索性分析

本節對資料集進行一些

探索性分析

,首先檢視每一類的情況

可以看到我們的資料很完整,一共150條資料每類50條,再檢視資料的描述統計

iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集

接着我們通過

箱線圖

直方圖

來觀察資料的最值,中位數和偏差與資料分布

iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集
iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集

進一步,我們可以繪散點圖來觀察四個變量之間的關聯

iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集

可以看到有些變量之前有着明顯的相關性,是以我們可以進行預測

模組化分類

現在開始模組化分類,和之前的例子一樣,我們将資料集劃分為訓練集和測試集。因為我們的資料集隻有150條記錄,是以将使用120條記錄來訓練模型,剩下的30條記錄用來評估模型

array = data.values
X = array[:,0:4]
Y = array[:,4]
x_train, x_test, y_train, y_test = model_selection.train_test_split(X, Y, test_size=0.2, random_state=7)
           

用于分類的模型很多,本文将使用以下四種經典算法來模組化并進行評估:

  • K近鄰(KNN)
  • 支援向量機(SVM)
  • 随機森林(RF)
  • 邏輯回歸(LR)

關于這幾種算法的理論并不會在本文詳細展開,事實上可以通過百度輕松查到每一種算法的推導與應用,你應該了解後再往下進行。

OK,現在我們直接來實作,在Python中實作并不困難,以KNN為例,僅需

4行代碼即可完成訓練模型和評估
model = KNeighborsClassifier()
model.fit(x_train,y_train)
predictions = model.predict(x_test)
print(accuracy_score(y_test, predictions))
           

其他三種算法的實作過程也是

類似的

,最後我們來看來四種算法的正确率

iris資料_Python機器學習之旅|手把手帶你探索IRIS資料集

從結果可以看到,

KNN

的效果最好為90%,而基于決策樹的

随機森林

表現較差為83.3%,當然由于随機性每次的結果可能不同,感興趣的讀者可以多試幾次。

結束語

以上就是使用著名的IRIS資料集并使用分類算法建立和訓練模型的全部過程,當然你也可以使用

更大的資料集/不同的模型

來進行訓練。文中使用的資料可以在早起Python回複:

ML

擷取。感興趣的話一定要

動手敲一遍代碼

!下一期将繼續以這種形式來介紹經典的機器學習案例,如果你喜歡本系列的話請點個在看讓我知道,拜拜~

繼續閱讀