科学の箱

科学・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

独立性の検定 2つ

ニートの年齢別割合が1996年と2012年で関連性があるか独立性の検定をしてみる。 ニートの割合  1996 2012 15~19歳 9 9 20~24歳 12 17 25~29歳 10 18 30~ …

no image

dataanalysis-002-week1

Rstudioを開発に使う 開発が用意 Forumがある 標準 フリー Help R Mailling list Stackoverflow CrossValidated R-Help ?rnorm …

no image

仕事で始める機械学習 – 6章 効果検証

効果検証のステップ 問題認識: 顧客の機器利用率が低い 問題の影響: 長期的なメンテナンス契約からの利益の確保 課題設定候補: メンテナンス以外からの利益確保 新規顧客からの利益 顧客利用率を上げる …

no image

線形回帰とリッジ回帰とラッソ回帰の違い

用語 線形回帰 データから平均二乗誤差を最低にするパラメータΘを求めて、直線で回帰すること $$ y = Θ_0 + Θ_1 \times x $$ コスト関数 損失関数とも呼ばれる。実際のデータと予 …

no image

条件付きでレコードを取得する

データフレームでは条件付きでレコードを取得できる。 以下のようなフォーマットのデータフレームを考える id name height vector1 <- c(1, 2, 3, 4, 5) vec …

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

side bar top



アーカイブ

カテゴリー