機器學習系列-數據分析-平行坐標圖
平行坐標圖簡介
平行坐標系是一種常用的數據可視化方法,常用於高維幾何和多元數據的可視化。其在數據的可視化表示上克服了笛卡爾直角坐標系(平面直角坐標系、空間直角坐標系)很容易耗盡空間維度,最多只能進行三個維度數據可視化的缺陷,將多個維度的數據變量用多個平行的坐標軸進行表示,將來自於同一數據源的不同維度曲線連接成折線,在存在多種不同類別的數據源時,也可以通過不同顏色繪制屬於不同類別數據源的折線,最終通過繪制出的圖像進行相關的數據分析。
平行坐標圖的繪制
iris鳶尾花數據集
此數據集中包括150個個體數據,其中每條個體數據中包括花萼長度,花萼寬度,花瓣長度,花瓣寬度以及花的所屬類別,此數據集在機器學習中的主要意義在於當我們已知花瓣的上述四種參數時可以判斷它屬於哪一種鳶尾花。
在sklearn的datasets庫中同樣存在iris的標准數據集,引用方法如下:
from sklearn.datasets import load_iris
iris = load_iris()
此時數據已經被存放在iris變量中
但在我使用pandas庫繪制平行坐標圖的過程中,發現在sklearn提供的數據集當中,其class數據和data數據被分開存放,使得我們在區分不同類別的鳶尾花時的過程變得較為繁瑣(但在該數據集中的確有標注區分不同類別的鳶尾花,但因為不在同一個數據表中,不方便使用pandas),於是改為使用本地的iris.csv數據集。
本地數據集形式如下:
sepal_length sepal_width petal_length petal_width target
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
.. ... ... ... ... ...
145 6.7 3.0 5.2 2.3 virginica
146 6.3 2.5 5.0 1.9 virginica
147 6.5 3.0 5.2 2.0 virginica
148 6.2 3.4 5.4 2.3 virginica
149 5.9 3.0 5.1 1.8 virginica
[150 rows x 5 columns]
iris平行坐標圖圖像繪制
在python的很多第三方庫中都有繪制平行坐標圖的相關方法,在此處我使用的是pandas庫中的plotting中自帶的平行坐標圖繪制方法parallel_coordinates,此方法的使用方式為parallel_coordinates(數據集, '分類依據')
具體實現方法如下:
import pandas as pd
from pandas.plotting import parallel_coordinates
#引用數據
iris = pd.read_csv("在此處添加文件路徑")
#檢查數據
print(iris)
parallel_coordinates(iris, 'target')
繪制出平行坐標圖如下:
根據繪制出的平行坐標圖我們可以對數據集中的數據進行分析篩選,並使用相關的機器學習的算法完成鳶尾花辨識的目的。
結語
本文使用數據集方式為使用本地文件數據,iris數據集可以點擊此處鏈接下載,但也可以通過修改部分代碼使用sklearn中提供的數據集實現繪制平行坐標圖。
本文僅介紹了iris鳶尾花數據的平行坐標圖繪制,其他機器學習相關內容請見后續相關文章。
如果發現文章內容存在錯誤或對文章內容存在疑惑,歡迎聯系作者進行指正探討,共同進步。
轉載請注明出處