ML (MachineLearning)

๋ฐ์ดํ„ฐ ๋ถˆ๊ท ํ˜•์ด ๋ฐœ์ƒํ•  ๋•Œ, ๋ฐ์ดํ„ฐ ๋ฆฌ์ƒ˜ํ”Œ๋งํ•˜๊ธฐ

567Rabbit 2024. 4. 15. 14:51

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sb

 

 

#๋‹น๋‡จ๋ณ‘์„ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ชจ๋ธ

 

df

  Preg Plas Pres skin test mass pedi age class
0 6 148 72 35 0 33.6 0.627 50 1
1 1 85 66 29 0 26.6 0.351 31 0
2 8 183 64 0 0 23.3 0.672 32 1
3 1 89 66 23 94 28.1 0.167 21 0
4 0 137 40 35 168 43.1 2.288 33 1
... ... ... ... ... ... ... ... ... ...
763 10 101 76 48 180 32.9 0.171 63 0
764 2 122 70 27 0 36.8 0.340 27 0
765 5 121 72 23 112 26.2 0.245 30 0
766 1 126 60 0 0 30.1 0.349 47 1
767 1 93 70 31 0 30.4 0.315 23 0

 

df['class']์˜ ์˜๋ฏธ ?

(1:๋‹น๋‡จ์ด๋‹ค, 0:๋‹น๋‡จ๊ฐ€ ์•„๋‹ˆ๋‹ค)

 

 

 

nan ์ •๋ฆฌํ•˜๊ธฐ

 

๋น„์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์—†์ง€๋งŒ ๋น„์–ด์žˆ๋Š” ํ•ญ๋ชฉ ๋Œ€์‹  0์œผ๋กœ ์…‹ํŒ…ํ•œ ๋ฐ์ดํ„ฐ์ด๋‹ค

๋”ฐ๋ผ์„œ, Plas ์ปฌ๋Ÿผ๋ถ€ํ„ฐ mass์ปฌ๋Ÿผ๊นŒ์ง€๋Š” 0์œผ๋กœ ์…‹ํŒ…๋œ ๊ฐ’์„ nan์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.

 

df.loc[  : , 'Plas' : 'mass' ]  = df.loc[  : , 'Plas' : 'mass' ].replace(0,np.nan)

df = df.dropna()

 

 

y์™€ X๋กœ ๋‚˜๋ˆ„๊ธฐ

y = df['class']

X = df.loc[  : , 'Plas' : 'age' ]

 

 

y.value_counts()

class
0    262
1    130
Name: count, dtype: int64

 

 

๋‹น๋‡จ๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ์€ 262๋ช…, ๋‹น๋‡จ์ธ ์‚ฌ๋žŒ์€ 130๋ช… ์žˆ๋‹ค

์ด ์ˆ˜๋ฅผ ๋งž์ถฐ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด

 

 

 

 

imblearn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์ƒ˜ํ”Œ๋งํ•˜๊ธฐ

 

! pip install imblearn

from imblearn.over_sampling import SMOTE

 

sm = SMOTE(random_state=5)

X, y = sm.fit_resample(X, y)

 

y.value_counts()

class
0    262
1    262
Name: count, dtype: int64