[SAS]
DATA iris;INFILE '/home/joinos0/sas_class/iris.csv' DLM=',' FIRSTOBS=2;
LENGTH Species $15;
INPUT sepal_length sepal_width petal_length petal_width species $;
DATA iris1;SET iris;
IF species ^= "Iris-setosa "; * 붓꽃 중에서 setosa를 제외, versicolor, virginica 두 종류만 추출
PROC CANDISC DATA=iris1;
CLASS species;
VAR sepal_length sepal_width petal_length petal_width;
RUN;
SAS는 분석결과물이 상당히 많습니다. 이중에서 R 결과와 비교할 만한 부분을 추출하였습니다.
R 결과와 동일하게 나오는 것을 볼 수 있습니다.
[R]
# R 이용한 다변량분석
library(MASS)
iris1 <- iris # iris 데이터를 iris1 으로 복사
head(iris1) # iris1 데이터 구성 살펴보기
str(iris1)
# (1) setosa 를 제외하기
levels(iris1$Species)
iris1 <- subset(iris1,Species=="versicolor" | Species=="virginica")
levels(iris1$Species)
iris1$Species <- factor(iris1$Species)
model_lda <- lda(Species~.,data=iris1) # lda 를 이용하여 판별분석
model_lda
[Python]
. 보완예정
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
# 붓꽃 데이터 로드
iris = load_iris()
# 데이터 정규 스케일링
iris_scaled = StandardScaler().fit_transform(iris.data)
# 2개의 클래스로 구분하기 위한 LDA 생성
lda = LinearDiscriminantAnalysis(n_components=2)
# fit()호출 시 target값 입력
lda.fit(iris_scaled, iris.target)
iris_lda = lda.transform(iris_scaled)