科学の箱

科学・IT・登山の話題

機械学習

irisでPCAを実行し可視化

投稿日:

irisデータをPCAで2次元に分類して可視化してみる。

内容

  • 準備及びデータの前処理
  • PCA
  • プロット

 

準備及びデータの前処理

irisデータを読み込み、PCAを実行するための前処理をする。ここの詳細については、

irisデータについて簡単な機械学習をしてみる

を参照

from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
import numpy as np

# データセット読み込み
iris = sns.load_dataset('iris')

# データ前処理
X_iris = iris.drop('species', axis=1)

 

PCA

PCAはsklearn.decomposition.PCAを用いる。

class sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False, svd_solver=’auto’, tol=0.0, iterated_power=’auto’, random_state=None)
n_components PCAの主成分の数
# PCA
pca = PCA(n_components=2)     
pca.fit(X_iris)               
pca_transformed = pca.transform(X_iris)

 

プロット

PCAで算出した主成分1および2の値はpca_transformedに格納されている。

print(pca_transformed)

# [[-2.68412563  0.31939725]
 [-2.71414169 -0.17700123]
 [-2.88899057 -0.14494943]
 [-2.74534286 -0.31829898]
 [-2.72871654  0.32675451]

 

プロットするためにこの値をirisデータにマージする。

# データマージ
iris["PCA1"] = pca_transformed[:, 0]
iris["PCA2"] = pca_transformed[:, 1]

 

プロットするにあたり種別で色を指定したいために、種別と色を設定した配列を作成する。

# プロット
species = y_test.unique()
print(species) #['setosa' 'versicolor' 'virginica']
colors = ['navy', 'turquoise', 'darkorange']

 

このデータを種別に読み込みながらプロットする。

for color,label in zip(colors, species):
        plt.scatter(iris[iris["species"]==label]["PCA1"],iris[iris["species"]=="setosa"]["PCA2"], color=color, label=label)
plt.title("PCA for IRIS")
plt.legend(loc="best")

 

 

メタ情報

inarticle



メタ情報

inarticle



-機械学習
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Core Concept in Data Analysis – Week 3

2d Analsysis 分布図 相関 回帰分析 因果関係 ガルトンはダーウィンのいとこ Related posts:research pipelineデータ分析のメモPythonではじめる機械学習 …

no image

クラスタリング

Rによるクラスタ分析の実行 県別の持家率と自家用車普及率からクラスタ分析を実行し似た県を探してみる。。 データソース 持家と自家用車普及率のデータは下記から取得する 持家普及率のデータはこちらから取得 …

no image

Exploratory Data Analysis

データを取得した後にやることは、データの構造化とクレンジング。それが完了したらData Exploratory Analysisに入る。 Exloratory Data Analysis(EDA)に関 …

no image

手書き数字のデータセットについてイメージを確認

sklearnには手書き数字のデータが用意されている。このデータはイメージの分類モデルを学ぶためによいスタートである。今回はこのバイナリデータを読み込み、イメージとして確認する。 内容 load_di …

no image

dataanalysis-002-week3

exploratory analysis グラフの目的 データのおおよそを理解する パターンを探す モデリングを探す デバッグ コミュニケーション boxplot 値のレンジを確認する 他の値とレンジ …

2019年9月
« 8月   10月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

side bar top



アーカイブ

カテゴリー