科学の箱

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

前向き研究と後ろ向き研究

前向き研究と後ろ向き研究は疫学における用語である。 前向き研究で使われる研究手法にはコホートや無作為比較対照研究、ロジスティック分析がある。これらの研究ではサンプルをリスクファクター(危険要因)のある …

no image

Excelによる単回帰分析

エクセルでの単回帰分析をについて手順をまとめる。エクセルの使い方にあわせて分析結果の解釈の仕方も書いておく。 データは勉強時間に対する点数とする。これは作ったデータであるが、線形回帰にフィットするよう …

no image

AWStatで基本指標を読む

ウェッブサイトの分析でまず見るべきことは月ごとのトレンドである。確認すべき指標はPV, 訪問数、UUdとなる。 AWStatではこれらの項目はWhen -> Month Historyで棒グラフ …

no image

dataanalysis-002-week4

クラスタリング SVDと組み合わせることでよりクラスに分かれているクラスタリングを実行できる。 散布図でクラスタリングする変数を探す クラスタリング SVDを実行する SVDの結果をクラスタリングに取 …

no image

Mahout in Action/chap2

2.1 レコメンドには2種類ある。 collaborative filtering contents based filtering collaborative filteringではコンテンツの内容 …

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

side bar top



アーカイブ

カテゴリー