인공지능/머신러닝

머신 러닝 : Logistic Regression up sampling기법 imblearn.over_sampling SMOTE

왕현성 2022. 12. 2. 12:03
728x90

위와 같은 사진의 데이터프레임에서 당뇨병을 분류하는 모델을 만드는 도중 

y값을 'class'컬럼으로 두었다. 당뇨병 환자는 1, 아닐 경우 0이다.

 

sb.countplot(data=df,x='class')
plt.show()

위 코드를 작성하여 시각화 해보니

당뇨병인 사람의 데이터가 훨씬 적다.

그래서 up sampling 기법으로, 당뇨병 데이터를 늘려보았다.

from imblearn.over_sampling import SMOTE
sm = SMOTE(random_state=2)
X,y=sm.fit_resample(X,y)
X

'class'의 밸류 값들이 1도 500 / 0도 500으로된 것을 확인할 수 있다.

 

이후

 

피처스케일링부터 검증까지 해주고 이를 seaborn의 heatmap으로 시각화까지 해보았다

sb.heatmap(data=cm,annot=True,cmap='RdPu',linewidths=0.7)
plt.show()