Python 튜토리얼

Lv4 전처리 5/9 python 파이썬 다중공선성 해결 - PCA (3)

2021.08.12 10:57 3,598 Views

안녕하세요 👩‍🌾👨‍🌾

이전 시간에는 PCA가 무엇인지 개념에 대해 배웠다면, 이번 시간에는 iris 데이터를 이용해 PCA 실습을 진행해보도록 하겠습니다.


실습 순서는 다음과 같습니다.


  1. iris 데이터 로딩
  2. x축 : sepal length y축 : sepal width로 하여 품종 데이터 분포 시각화
  3. PCA를 이용해 차원 축소 후 변환된 데이터 셋을 2차원 상에서 시각화.


----------------------------------------------------------------------------------------------------------------------

#setosa는 빨간색, versicolor는 노란색, virginica는 파란색

color=['r''y''b']


# setosa의 target 값은 0, versicolor는 1, virginica는 2. 

# 각 target 별로 다른 색으로 scatter plot 

for i, c in enumerate(color):

    x_axis_data = df[df['target']==i]['sepal_length']

    y_axis_data = df[df['target']==i]['sepal_width']

    plt.scatter(x_axis_data, y_axis_data,color = c,label=iris.target_names[i])


plt.legend()

plt.xlabel('sepal length')

plt.ylabel('sepal width')

plt.show()


# Target 값을 제외한 모든 속성 값을 MinMaxScaler를 이용하여 변환

# 'sepal_length','sepal_width','petal_length','petal_width'

df_features = df[['sepal_length','sepal_width','petal_length','petal_width']]

df_scaler = MinMaxScaler().fit_transform(df_features)


# PCA를 이용하여 4차원 변수를 2차원으로 변환


pca = PCA(n_components=2)


#fit( )과 transform( ) 을 호출하여 PCA 변환 / 데이터 반환

pca.fit(df_scaler)

df_pca = pca.transform(df_scaler)

print(df_pca.shape)


# PCA 변환된 데이터의 컬럼명을 각각 PCA_1, PCA_2로 지정


df_pca = pd.DataFrame(df_pca)

df_pca.columns = ['PCA_1','PCA_2']

df_pca['target']=df.target

df_pca.head(3)


#setosa는 빨간색, versicolor는 노란색, virginica는 파란색

color=['r''y''b']


# setosa의 target 값은 0, versicolor는 1, virginica는 2. 

# 각 target 별로 다른 색으로 scatter plot 

for i, c in enumerate(color):

    x_axis_data = df_pca[df_pca['target']==i]['PCA_1']

    y_axis_data = df_pca[df_pca['target']==i]['PCA_2']

    plt.scatter(x_axis_data, y_axis_data, color = c,label=iris.target_names[i])


plt.legend()

plt.xlabel('PCA_1')

plt.ylabel('PCA_2')

plt.show()

----------------------------------------------------------------------------------------------------------------------

[Colab 실습 링크]


↩️ 오늘의 파이썬 리스트

#데이콘_101 #AI #머신러닝 #딥러닝 #파이썬 #파이선  #데이터분석 #데이터사이언티스트 #코랩 #Python  #colab #kaggle #pandas #numpy #sckit-learn # read_csv #스케일링 #MinMaxScailing

로그인이 필요합니다
0 / 1000
그린티
2021.09.12 13:31

done

다욤
2021.09.19 20:51

done

Holte
2021.10.06 22:00

왼쪽눈썹왁싱
2021.11.01 17:52

changhyeon
2021.12.29 15:36

done

moran
2022.01.03 16:35

dbnoid
2022.01.18 20:48

hijihyo
2022.01.25 17:57

acebed
2022.03.10 21:07

done

하랴랴
2022.03.15 16:38

done

kimgugu
2022.03.27 14:24

Kdata
2022.05.02 14:41

krooner
2022.05.19 22:04

khloee
2022.05.26 15:33

양현모든지쓸어버리겠다
2022.07.11 14:24

Y2J
2022.07.11 16:07

highllight
2023.02.02 14:43

김시옷
2023.05.28 15:18

done+