<jupyter_start><jupyter_text>線形判別分析* クラスの分離を最適化する特徴部分空間を見つけようとする。* 教師ありのアルゴリズム下記が前提条件となる* データが正規分布に従っていること* クラスの共分散行列が全く同じであること* 特徴量が統計的に見て互いに独立していること 手順1. \\( d \\)次元のデータセットを標準化する(\\( d \\)は特徴量の個数)1. クラスごとに\\( d \\)次元のベクトルを計算する1. クラス間変動行列\\( S_B \\)とクラス内変動行列\\( S_W \\)を生成する1. 行列\\( S_W^{-1}S_B \\)の固有ベクトルと対応する固有値を計算する1. \\( d \times k \\)次元の変換行列\\( {\boldsymbol W} \\)を生成するために、最も大きい\\( k \\)個の固有値に対応する\\( k \\)個の固有ベクトルを選択する。固有ベクトルはこの行列の行1. 変換行列\\( {\boldsymbol W} \\)を使ってサンプルを新しい特徴部分空間へ射影する。<jupyter_code># データの取得と前処理（標準化）
import pandas as pd
df_wine = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data', header=None)

from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler

X, y = df_wine.iloc[:, 1:].values, df_wine.iloc[:, 0].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
sc = StandardScaler()
X_train_std = sc.fit_transform(X_train)
X_test_std = sc.transform(X_test)<jupyter_output>C:\Users\maeda\Miniconda3\lib\site-packages\sklearn\cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
  "This module will be removed in 0.20.", DeprecationWarning)
{'fraction_non_alphanumeric': 0.1313617606602476, 'fraction_numerical': 0.016506189821182942, 'mean_word_length': 5.244635193133047, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '561252', 'license': 'Apache-2.0', 'n_tokens_mistral': 756, 'n_tokens_neox': 750, 'n_words': 129, 'path': 'python-machine-learning/ch05/lda.ipynb', 'repo_name': 'hide-tono/python-training', 'size': '1454'}