๐ค ๊ธฐ์ ํต๊ณ๊ฐ์ผ๋ก ๋ฌด์์ ํ์ธ ํ ์ ์์๊น?
๐ค histogram์ ๊ทธ๋ ค๋ณด๋ ๋ชฉ์ ?
์ ์ฒ๋ฆฌ๋ฅผ ํ ๋ ํ์ต๊ณผ ์์ธก์ ๋์์ด ๋ ๋งํ ํผ์ฒ์์ง๋์ด๋ง ๊ธฐ๋ฒ์ด ๋ฌด์์ด ์์์ง ๊ณ ๋ฏผํ๊ธฐ ์ํด
๐ค ์ด์์น๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น?
๐ค ํฌ์๊ฐ์ ์, ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น?
ํฌ์๊ฐ์ ๋ฒ์ฃผํ ๋ฐ์ดํฐ ์ค์์ ๋น๋๊ฐ ์ ๊ฒ ๋ฑ์ฅํ๋ ๊ฐ์ด๋ค.
๐ค transformation?
ํ์ค ์ ๊ท๋ถํฌ ํํ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ log transformation ํ scaling ํ๋ ์์
๐ค ์ด์ฐํ๋?
์ด์ฐํ (cut, qcut)๋ RFM ๊ธฐ๋ฒ์์๋ ์ข
์ข
์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ
Recency, Frequency, Monetary => ๊ณ ๊ฐ์ด ์ผ๋ง๋ ์ต๊ทผ์, ์์ฃผ, ๋ง์ด ๊ตฌ๋งคํ๋์ง๋ฅผ ๋ถ์ํ ๋ ์ฌ์ฉ
๐ค ์ด์ฐํ๋ฅผ ํ๋ ์ด์ ?
โ๏ธ ์ธ์ฝ๋ฉํ ๋ fit()
์ train์๋ง, test์๋ transform()
๋ง!
โ๏ธ ์ํซ์ธ์ฝ๋ฉ ํ์ ๋๋ train, test ํผ์ฒ์ ์๊ฐ ๊ฐ์์ง ํ์ธ!
print(train_ohe.shape, test_ohe.shape)
๐ ๋คํญ์ ์ ๊ฐ(Polynomial Expansion) ์ฉ์ด์ ์นํด์ง๊ธฐ
๐ค train๊ณผ test์ ๋ฐ์ดํฐ๋ฅผ concat์ผ๋ก ํฉ์น๋ฉด?
์ฅ์ : ์ ์ฒ๋ฆฌ๋ฅผ ํ๋ฒ๋ง ํด๋ ๋๋ค.
๋จ์ : test์๋ง ๋ฑ์ฅํ๋ ๋ฐ์ดํฐ๋ฅผ ํผ์ฒ์ ์ฌ์ฉํ๋ฉด ์ ๋๋ ๋ํ ์ ์ฑ
์ด ์์ ๋ ์ ์ฑ
์๋ฐ์ด ๋ ์ ์๋ค. ๋ํ ๋ฐ์ดํฐ์ด๊ธฐ ๋๋ฌธ์ test๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์์ง๋ง ํ์ค์ธ๊ณ์์๋ ๋ถ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ด๋ค.
nlargest(์ถ๋ ฅํ ํ์ ๊ฐฏ์, ๊ธฐ์ค์ด ๋๋ ์ปฌ๋ผ)
: ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅ
Q: ๋ฒ์ฃผ๊ฐ ์ ์ ๊ฐ์ ํผ์ฒ๋ก ๋ง๋ค์ด ์ฃผ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ๋ ์์ ์ ์์๊น์?
A: ๊ณผ๋์ ํฉ์ ์ฐ๋ ค๊ฐ ์๋ค.
Q: ๋๋ฌด ํฌ์ํ ๊ฐ์ด๋ผ๋ฉด one-hot-encoding ํ ๋ ์ด๋ค ์ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์๊น์?
A: ๊ธฐํ๋ก ๋ฌถ๋ ๋ฐฉ๋ฒ (data binning)๋ ์๊ณ ์์ ๊ฒฐ์ธก์น๋ก ์ฒ๋ฆฌํ๊ณ pd.get_dummies ํน์ OneHotEncoder๋ฅผ ์ฌ์ฉํ์ ๋ ์ธ์ฝ๋ฉ ํ์ง ์๋๋ค.
Q: ํ์ค์ ๊ท๋ถํฌ ํํ๋ก ๋ง๋ค๊ธฐ ์ํด์๋ 1) ์ค์ผ์ผ๋ง์ด ๋จผ์ ๋ค 2) ๋ก๊ทธ๋ณํ์ด ๋จผ์ ๋ค
A: ๋ก๊ทธ๋ณํ์ด ๋จผ์ ๋ค.
Q: ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ท๋ถํฌ ํํ๋ก ๋ง๋ค์ด์ฃผ๋ฉด ๋จธ์ ๋ฌ๋์ด๋ ๋ฅ๋ฌ๋์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ผ๊น์?
A: ๋๋ฌด ํ์ชฝ์ ๋ชฐ๋ ค์๊ฑฐ๋ ์น์ฐ์ณ์ ธ ์์ ๋๋ณด๋ค ๊ณ ๋ฅด๊ฒ ๋ถํฌ๋์ด ์๋ค๋ฉด ๋ฐ์ดํฐ์ ํน์ฑ์ ๋ ๊ณ ๋ฅด๊ฒ ํ์ตํ ์ ์๋ค.
- ํผ์ฒ์ ๋ฒ์๊ฐ ๋ค๋ฅด๋ฉด ํผ์ฒ๊ฐ ๋น๊ต๊ฐ ์ด๋ ค์ฐ๋ฉฐ ๊ฒฝ์ฌํ๊ฐ๋ฒ(Gradient Descent)์ด๋ KNN, Clustering ๋ฑ์ ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ์์๋ ๋จธ์ ๋ฌ๋์ด ์ ๋๋ก ์๋ํ์ง ์๋๋ค.
- PCA ์ ์ ์ ์ฒ๋ฆฌ ํ ์์ฑ์ ์ํฅ์ ๊ฐ์ ์ ์์์ ๋น๊ตํ ์ ์๋ค.
Q: ๋๋ฌด ํฐ ์์๊ฐ์ด ์์๋! ์์์ธ ๊ฐ์ด ๋๋ฌด ๋พฐ์กฑํ๊ฑฐ๋ ์น์ฐ์ณ์ ธ ์์ด์ ๋ก๊ทธ๋ฅผ ์ทจํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ์ ์ฒ๋ฆฌ ํด์ผ ํ ๊น์? ์๋ฅผ ๋ค์ด -1000 ์ด๋ผ๋ฉด?
A: ์ต์๊ฐ + 1์ ํด์ค๋ค.
๋ชจ๋ ๊ฐ์ด ์์์ด๊ณ 1๋ณด๋ค ์์ ๊ฐ์ด ์์ ๋๋ 1์ ๋ํด์ค๋ค.
Q: ์๋ฅผ ๋ค์ด -1000 ์ด ๊ฐ์ฅ ์์ ๊ฐ์ด๋ผ๋ฉด ์ผ๋ง๋ฅผ ๋ชจ๋ ๊ฐ์ ๋ํ๊ณ ๋ก๊ทธ ๋ณํ์ ํด์ฃผ๋ฉด ๋ ๊น์?
A: 1001 (์ต์๊ฐ์ด 1์ด ๋๋๋ก ๋ํด์ฃผ๋ฉด ๋๋ค.)
Q: -1000 ์ 1001 ์ ๋ํด์ ๋ก๊ทธ๋ณํ์ ํด์ฃผ์์ต๋๋ค. ์๋ ๊ฐ์ผ๋ก ๋ค์ ๋ณต์ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
A: np.exp(x) -1001
np.expm1 ์ ๋ณด๋ฉด exp๋ฅผ ๋จผ์ ํ๊ณ m1 ์ผ๋ก 1์ ๋์ค์ ๋นผ์ฃผ๊ฒ ๋ฉ๋๋ค.
Q: LabelEncoder ์ OrdinalEncoder ์ ์
๋ ฅ๊ฐ์ ์ฐจ์ด?
A: LabelEncoder์ ์
๋ ฅ์ด 1์ฐจ์ y ๊ฐ, OrdinalEncoder์ ์
๋ ฅ์ด 2์ฐจ์ X๊ฐ
Ordinal Encoding์ Label Encoding๊ณผ ๋ฌ๋ฆฌ ๋ณ์์ ์์๋ฅผ ๊ณ ๋ คํ๋ค๋ ์ ์์ ํฐ ์ฐจ์ด๋ฅผ ๊ฐ๋๋ค. Label Encoding์ด ์ํ๋ฒณ ์์ ํน์ ๋ฐ์ดํฐ์ ์ ๋ฑ์ฅํ๋ ์์๋๋ก ๋งคํํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ Oridnal Encoding์ Label ๋ณ์์ ์์ ์ ๋ณด๋ฅผ ์ฌ์ฉ์๊ฐ ์ง์ ํด์ ๋ด์ ์ ์๋ค.
Q: X์ y?
A: X๋ ๋ณดํต 2์ฐจ์์ผ๋ก ๋๋ฌธ์๋ก ํ๊ธฐํ๊ณ y๋ ์๋ฌธ์๋ก ํ๊ธฐํ๋๊ฒ์ด ๊ด๋ก์ฒ๋ผ ์ฌ์ฉ๋๊ณ ์๋ค.
X๋ feature, ๋
๋ฆฝ๋ณ์, 2์ฐจ์ array ํํ, ํ์ตํ ํผ์ฒ e.g. ์ํ์ ๋ฌธ์
y๋ label, ์ข
์๋ณ์, target, ์ ๋ต, 1์ฐจ์ ๋ฒกํฐ e.g. ์ํ์ ์ ๋ต
๋ฅ๋ฌ๋์์๋ x๋ฅผ ๋ณดํต ์๋ฌธ์๋ก ์ฌ์ฉํ๋๋ฐ ์๋ง๋ ์ถ์ธกํ๊ธฐ๋ก๋ x์ ๊ผญ 2์ฐจ์๋ง ๋ค์ด๊ฐ๋๊ฒ ์๋๋ผ์๋ก ๋ณด์ฌ์ง๋๋ค. 2์ฐจ์ ์ด์๋ ๋ค์ด๊ฐ๋๋ค. ์) ์ด๋ฏธ์ง
Q: ์ธ์ฝ๋ 3๊ฐ์ง์ ๊ณตํต์ ์ ๋ฌด์์ผ๊น์?
A: ๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ฅผ ์์นํ ๋ฐ์ดํฐ๋ก ๋ณํ
ohe = OneHotEncoder()
train_ohe = ohe.fit_transform(train[["MSZoning", "Neighborhood"]]).toarray()
test_ohe= ohe.transform(test[["MSZoning", "Neighborhood"]])
pd.DataFrame(train_ohe, columns=ohe.get_feature_names_out())
Q: ์์ ์ค๋ฅ๋ฅผ ์ด๋ป๊ฒ ๊ณ ์น ์ ์์๊น์?
A: ohe = OneHotEncoder(handle_unknown = 'ignore')
Q: ๊ตฌ๋ถ์ด ์ ์ ๋๋ ๊ฐ์ ๋ํด power transform ์ ํด์ฃผ๊ธฐ๋ ํ๋๋ฐ ๋ฐ๋๋ก ๋๋ฌด ์ฐจ์ด๊ฐ ๋ง์ด ๋๋ ๊ฐ์ ์ค์ผ ๋ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ?
A: ๊ผญ ์ ๋ต์ด ์๋ค๊ธฐ ๋ณด๋ค๋ EDA๋ฅผ ํด๋ณด๊ณ ์ด๋ค ์ค์ผ์ผ๋ง์ ํ๋ฉด ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ด ๊ฐ์ ํ์ตํ๋๋ฐ ๋์์ด ๋ ์ง ๊ณ ๋ฏผํด ๋ณด๋ ๊ฒ์ด ์ข๋ค.
root, log transform ๋ ํด๋ณผ ์ ์์ง๋ง ๋ณํ์ด ์ ๋ต์ ์๋๋๋ค. ์ฑ๋ฅ์ด ์ฌ๋ผ๊ฐ๊ณ ์ ์ฌ๋ผ๊ฐ๊ณ ๋ EDA ๋ฑ์ ํตํด ํ์ธํด ๋ณด๊ณ ์ ์ ์๊ฐ ์ค๋ฅด๊ณ ๋ด๋ฆฌ๋์ง ํ์ธํด ๋ณด๋ ์ต๊ด์ ๊ธธ๋ฌ๋ณด์ธ์.
Q: SQL ๋ก ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ์ ํ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ ์ด๋ป๊ฒ ๊ตฌ๋ถํด์ ๊ด๋ฆฌํ ๊น์?
A: SQL ์ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ ์ค์๊ฐ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ ๋ฐ์ดํฐ์ด๊ณ , ํ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ ๋ก๊ทธ์ฑ ๋ฐ์ดํฐ
๋ฐ์ดํฐ๋ ๋์ด ๋๋ค. ์ ํ๋ธ์์ ์์์ ๋ช ๊ฐ ์์ฒญํ๋ฉด ์ ํ๋ธ๋ ์ฌ๋ฌ๋ถ์ ์ฑ๋ณ, ๋์ด, ๊ด์ฌ์ฌ, ์ง์ญ ๋ฑ์ ์ ๋ณด๋ฅผ ๋๋ต์ ์ผ๋ก ์๊ฒ ๋ฉ๋๋ค.
Q: SQL ๋ก ์ค์๊ฐ์ผ๋ก ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค๋ฉด ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์์๊น์?
A: ๋ก๊ทธ์ธ, ์ฅ๋ฐ๊ตฌ๋, ๊ฒฐ์ , ํ์๊ฐ์
์ ๋ณด, ๊ฐ์ข
status ๊ฐ(๊ฒ์์ ์บ๋ฆญํฐ ์์น, ์บ๋ฆญํฐ ์ ๋ณด, ๊ฒ์๋จธ๋, ์บ๋ฆญํฐ ๊ฐ์ง๊ณ ์๋ ์ฅ๋น ์ธ๋ฒคํ ๋ฆฌ ์ ๋ณด)
Q: "๋ฐ์ดํฐ๋ฅผ ํตํด ์๋น์ค์ ๋ช ๋ช ์ด ์ ์ํ๋์ง, ๊ทธ๋ถ๋ค์ด ์ผ๋ง๋ ๋ง์ ์ํ์ ์กฐํํ๊ณ ์ผ๋งํผ ๊ตฌ๋งค๋ก ์ด์ด์ง๋์ง ํ์ธํ ์ ์๊ฑฐ๋ ์. ๊ทธ ๊ณผ์ ์ ํตํด ์ด๋ ํ์ด์ง์์ ์ฌ๋๋ค์ด ์ดํํ๋์ง๋ ํ์ธํ ์ ์์์ฃ ."
์ฑ์ฉ๊ณต๊ณ ์ ์์๋ ์ด๋ค ์งํ๋ก ์ด ํํ์ ์ค๋ช
ํ ์ ์์๊น์?
A:
A/B testing: 1~2๋ ์ด ๋๋ ์๊ฐ ๋์ ์๋ฐฑ ๊ฐ์ง์ ๋ ธ๋ ฅ์ด ๊พธ์คํ ๋ชจ์ฌ์ ๋งค๋ฌ ๋ง์ฃผํ๋ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ ๊ฒ์ด ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์ฑ์ฅ์ ๋ชจ๋ฉํ ์ ๋ง๋ค์๋ค๊ณ ์๊ฐํฉ๋๋ค.
Q: ๊ฒ์์ด๋ ์ค์๊ฐ์ผ๋ก ์ฌ์ฉํด์ผํ๋ ๋ฐ์ดํฐ์ธ๊ฐ์?
A: ์ด๋ฐ ์ข
๋ฅ์ ๋ฐ์ดํฐ๋ ์์ด๋ ์ฉ๋์ด ์ด๋์ ๋๋์ ๋ฐ๋ผ ์์ฌ๊ฒฐ์ ์ ํ ์๋ ์๋๋ฐ ์์นด์ด๋นํ ๋ฐ์ดํฐ๋ ๋๋ถ๋ถ ํ์ผ๋ก ์ ์ฅํฉ๋๋ค. ์ค์๊ฐ์ผ๋ก ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ ํ์ฌ status ๊ฐ๋ง DB์ ์ ์ฅํด์ ์ฌ์ฉํ๊ธฐ๋ ํฉ๋๋ค. status๊ฐ์ ์
๋ฐ์ดํธ ํด์ SQL๋ก ๊ด๋ฆฌํ๊ณ ์์นด์ด๋นํ ๋ฐ์ดํฐ๋ ํ์ผ๋ก ์ ์ฅํฉ๋๋ค.