728x90
LDA¶
In [1]:
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
In [2]:
iris = load_iris()
iris_scaled = StandardScaler().fit_transform(iris.data)
- LDA 변환
In [3]:
lda = LinearDiscriminantAnalysis(n_components=2)
lda.fit(iris_scaled, iris.target)
iris_lda = lda.transform(iris_scaled)
print(iris_lda.shape)
(150, 2)
- LDA 변환된 입력 데이터 값 시각화
In [4]:
lda_columns=['lda_component_1','lda_component_2']
iris_lda_df = pd.DataFrame(iris_lda,columns=lda_columns)
iris_lda_df['target']=iris.target
#setosa는 세모, versicolor는 네모, virginica는 동그라미로 표현
markers=['^', 's', 'o']
#setosa의 target 값은 0, versicolor는 1, virginica는 2. 각 target 별로 다른 shape으로 scatter plot
for i, marker in enumerate(markers):
x_axis_data = iris_lda_df[iris_lda_df['target']==i]['lda_component_1']
y_axis_data = iris_lda_df[iris_lda_df['target']==i]['lda_component_2']
plt.scatter(x_axis_data, y_axis_data, marker=marker,label=iris.target_names[i])
plt.legend(loc='upper right')
plt.xlabel('lda_component_1')
plt.ylabel('lda_component_2')
plt.show()
728x90
'Data Analytics with python > [Machine Learning ]' 카테고리의 다른 글
[Dimension Reduction] NMF 변환 (0) | 2023.02.13 |
---|---|
[Dimension Reduction] SVD 변환 (0) | 2023.02.13 |
[Dimension Reduction] PCA components 기반 변환 (0) | 2023.02.13 |
[연관 규칙 데이터 정제] 데이터를 정제하여 apriori 알고리즘을 수행하기 위한 준비 (0) | 2023.02.03 |
[연관 규칙 분석] Association_rules 분석 (0) | 2023.02.03 |
댓글