[AIS7] ML (7)

BBakHyeยท2022๋…„ 11์›” 8์ผ
0

๐Ÿฆ AI SCHOOL 7๊ธฐ

๋ชฉ๋ก ๋ณด๊ธฐ
20/52
post-thumbnail

0601 ์‹ค์Šต: Bike - Baseline

๐Ÿค” ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ณ  ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์— ์ ์šฉํ•ด ๋ณด๊ธฐ ์ „์— ๊ทธ ๋ชจ๋ธ์ด ์–ผ๋งˆ๋‚˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์ธ์ง€๋ฅผ ๋ฌผ์–ด๋ณธ๋‹ค๋ฉด ๋ฌด์—‡์ด๋ผ ๋‹ตํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

CV๋Š” ๋ชจ์˜๊ณ ์‚ฌ๋ฅผ ํ’€์–ด์„œ ๋‹ต์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •๊ณผ ์œ ์‚ฌํ•˜๋‹ค.

# cross_val_predict๋Š” ์˜ˆ์ธกํ•œ predict๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ง์ ‘ ๊ณ„์‚ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
# ๋‹ค๋ฅธ cross_val_score, cross_validate๋Š” ์Šค์ฝ”์–ด๋ฅผ ์กฐ๊ฐ๋งˆ๋‹ค ์ง์ ‘ ๊ณ„์‚ฐํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค. 
from sklearn.model_selection import cross_val_predict

y_val_pred = cross_val_predict(model, X_train, y_train, 
							   cv=5, n_jobs=-1, verbose=2)

๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ฝ”๋”ฉ ํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•
1. one-hot-encoding (pd.get_dummies()) ๐Ÿ‘‰๐Ÿป ์ˆœ์„œ๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ ์ธ์ฝ”๋”ฉ
2. ordinal-encoding ๐Ÿ‘‰๐Ÿป ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ์ธ์ฝ”๋”ฉ
category ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ordinal encoding์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

# ordinal-encoding์„ ์‚ฌ์šฉํ•ด์„œ year_month_code ํŒŒ์ƒ๋ณ€์ˆ˜ ์ƒ์„ฑ
# cat.codes: categorical accessor; ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆซ์ž๋กœ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค.
train["year_month_code"] = train["datetime"].astype("category").cat.codes
test["year_month_code"] = test["datetime"].astype("category").cat.codes

0602 ์‹ค์Šต: Bike - Logarithm

๊ทธ๋ƒฅ ๋จธ๋ฆฌ์— ์ง‘์–ด ๋„ฃ์ž..๐Ÿฅบ
๋กœ๊ทธ(log)๋Š” ์ง€์ˆ˜ ํ•จ์ˆ˜์˜ ์—ญํ•จ์ˆ˜์ด๋‹ค. ์–ด๋–ค ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๊ณ ์ •๋œ ๋ฐ‘์„ ๋ช‡ ๋ฒˆ ๊ณฑํ•˜์—ฌ์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

# count, log1p, expm1
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(20, 5))
# count - kdeplot
sns.kdeplot(train["count"], ax=axes[0])
# count log1p - kdeplot
sns.kdeplot(train["count_log1p"], ax=axes[1])
# expm1
sns.kdeplot(train["count_expm1"], ax=axes[2])

  • log๋ฅผ count๊ฐ’์— ์ ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํ•œ ์ชฝ์— ๋„ˆ๋ฌด ๋พฐ์กฑํ•˜๊ฒŒ ์žˆ๋˜ ๋ถ„ํฌ๊ฐ€ ์ข€ ๋” ์™„๋งŒํ•œ ๋ถ„ํฌ๊ฐ€ ๋œ๋‹ค.
  • ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์น˜์šฐ์น˜๊ณ (skewed) ๋พฐ์กฑํ•œ ๋ถ„ํฌ๊ฐ€ ์ •๊ทœ๋ถ„ํฌ์— ๊ฐ€๊นŒ์›Œ ์ง€๊ธฐ๋„ ํ•œ๋‹ค.
  • log๋ฅผ ์ทจํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ด์ƒ์น˜์—๋„ ๋œ ๋ฏผ๊ฐํ•˜๊ฒŒ ๋œ๋‹ค.
# count expm1(exponential) - kdeplot
# np.exp๋Š” ์ง€์ˆ˜ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. np.log๋กœ ์ทจํ–ˆ๋˜ ๊ฐ’์„ ๋‹ค์‹œ ์›๋ž˜์˜ ๊ฐ’์œผ๋กœ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
# count == np.expm1(np.log1p(count)) ๊ฐ™์€ ๊ฐ’์ž…๋‹ˆ๋‹ค.

# log๋ฅผ ์ทจํ•  ๋•Œ๋Š” 1์„ ๋”ํ•˜๊ณ  log๋ฅผ ์ทจํ–ˆ๋Š”๋ฐ
# ์ง€์ˆ˜ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•  ๋•Œ๋Š” ๋ฐ˜๋Œ€์˜ ์ˆœ์„œ๋Œ€๋กœ ๋ณต์›ํ•ด์•ผ ์ˆœ์„œ๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค.
# np.exp๋กœ ์ง€์ˆ˜ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๊ณ  -1์„ ํ•ด์ฃผ์–ด์•ผ log๋ฅผ ์ทจํ–ˆ๋˜ ์ˆœ์„œ๋ฅผ ๋ณต์›ํ•ด ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
# np.expm1์€ ์ง€์ˆ˜ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๊ณ  -1์„ ํ•ด์ฃผ๋Š” ์ˆœ์„œ๋กœ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. 

train["count_expm1"] = np.exp(train["count_log1p"]) - 1
train[["count", "count_log1p", "count_expm1"]]

exponential == log๋ฅผ ์ œ๊ฑฐํ•ด์„œ ์›๋ž˜๊ฐ’์œผ๋กœ ๋ณ€ํ™˜

๐Ÿค” ์›๋ž˜์˜ count ์ปฌ๋Ÿผ์„ ๋‹ค์‹œ์“ฐ๋Š”๊ฑฐ๋ž‘ np.exp๋กœ ๋ณต์›ํ•ด์„œ ์“ฐ๋Š”๊ฑฐ๋ž‘ ์ฐจ์ด๋Š” ์—†๋Š”๊ฒŒ ๋งž์„๊นŒ์š”?
๐Ÿ‘‰๐Ÿป count == np.expm1(np.log1p(count))

# count, log1p, expm1
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(20, 5))
# count - kdeplot
sns.kdeplot(train["count"], ax=axes[0])
# count log1p - kdeplot
sns.kdeplot(train["count_log1p"], ax=axes[1])
# expm1
sns.kdeplot(train["count_expm1"], ax=axes[2])

0701 ์‹ค์Šต: Feature Engineering

์–ด๋–ค ์ฑ…๋ณด๋‹ค๋„ ์—ฌ๊ธฐ์— ์žˆ๋Š” ๊ถŒ์žฅ ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ผํ•ด ๋ณด๋Š” ๊ฒŒ ์˜ˆ์Šต๊ณผ ๋ณต์Šต์— ๋„์›€์ด ๋œ๋‹ค.

์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ์…‹์— ์žˆ๋Š” ์ฃผํƒ๊ฐ€๊ฒฉ์„ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜๋กœ๋Š” ๋‚ด์™ธ๊ด€ ํ’ˆ์งˆ, ํ™”์žฅ์‹ค์˜ ์ˆ˜, ๋ฐฉ์˜ ๊ฐœ์ˆ˜, ์ˆ˜์˜์žฅ ์—ฌ๋ถ€, ์ง€๋ถ•, ์–ธ์ œ ๊ฑด์ถ•์ด ๋˜์—ˆ๋Š”์ง€ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค.
์ด ๋ฐ์ดํ„ฐ์…‹์„ ํ†ตํ•ด EDA๋ฅผ ํ•ด๋ณด๊ณ  ํ”ผ์ฒ˜์—”์ง€๋‹ˆ์–ด๋ง์„ ํ†ตํ•ด ์–ด๋–ค๊ฒŒ ์‹ ํ˜ธ๊ฐ€ ๋˜๊ณ  ์–ด๋–ค๊ฒŒ ์†Œ์Œ์ด ๋ ์ง€ ์•Œ์•„๋ณผ ์˜ˆ์ •.

์ด์ƒ์น˜ ํƒ์ƒ‰

sns.scatterplot(data=train, x=train.index, y="SalePrice");
plt.axhline(500000, c="k", ls=":")

  • 500k์„ ๊ธฐ์ค€์œผ๋กœ ๊ธฐ์ค€์„ ๋ฒ—์–ด๋‚œ ๊ฐ’์„ ํฌ์†Œ๊ฐ’๋กœ ๋ณธ๋‹ค.
  • ํฌ์†Œ๊ฐ’์— ๋Œ€ํ•ด ์›ํ•ซ์ธ์ฝ”๋”ฉ์„ ํ•˜๊ฒŒ๋˜๋ฉด ์˜ค๋ฒ„ํ”ผํŒ…์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋„ˆ๋ฌด ํฌ์†Œํ•œ ํ–‰๋ ฌ์ด ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐ์— ๋งŽ์€ ์ž์›์ด ํ•„์š”ํ•˜๋‹ค.
  • ํฌ์†Œํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด
    1) ์•„์˜ˆ ํฌ์†Œ๊ฐ’์„ ๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌํ•˜๋ฉด ์›ํ•ซ์ธ์ฝ”๋”ฉ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    2) ํฌ์†Œํ•œ ๊ฐ’์„ "๊ธฐํƒ€" ๋“ฑ์œผ๋กœ ๋ฌถ์–ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค.

๐Ÿ™‹๐Ÿปโ€โ™€๏ธ ์งˆ๋ฌธ

Q: train.groupby("season")["month"]. ์ด ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์™„์„ฑํ•˜๋ฉด season์— ํ•ด๋‹นํ•˜๋Š” ์›”์„ ์ž˜ ์š”์•ฝํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”?
A: describe()๋‚˜ unique()

Q: ์™œ ์ •๊ทœ๋ถ„ํฌ๊ฐ€ ๋˜๋ฉด ๋จธ์‹ ๋Ÿฌ๋‹์ด๋‚˜ ๋”ฅ๋Ÿฌ๋‹์—์„œ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ผ๊นŒ์š”?
A: ๊ฐ’์„ ๋ณผ ๋•Œ ํ•œ์ชฝ์— ๋„ˆ๋ฌด ์น˜์šฐ์ณ์ ธ ์žˆ๊ณ  ๋พฐ์กฑํ•˜๋‹ค๋ฉด ํŠน์„ฑ์„ ์ œ๋Œ€๋กœ ํ•™์Šตํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์ •๊ทœ๋ถ„ํฌ๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด ํŠน์„ฑ์„ ๊ณ ๋ฅด๊ฒŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋‹ค.

Q: ์™œ count์— log๋ฅผ ์ทจํ•˜๊ณ  ๋‹ค์‹œ ์ง€์ˆ˜ํ•จ์ˆ˜๋กœ ๋ณต์›์„ ํ–ˆ์„๊นŒ์š”?
A: log ๊ฐ’์œผ๋กœ ์˜ˆ์ธกํ•˜๊ณ  ์˜ˆ์ธก๊ฐ’์„ ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•ด.

Q: ๋ณ€์ˆ˜์˜ ๋ถ„ํฌ๊ฐ€ ํŽธํ–ฅ์ด ๋˜์—ˆ๋‹ค๋Š” ์–ด๋–ค ํ‘œํ˜„์ผ๊นŒ์š”?
A: ์ •๊ทœ๋ถ„ํฌ์˜ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ํ˜•ํƒœ (์™œ๋„๊ฐ€ ๋†’์€ ํ˜•ํƒœ)

Q: ์ด์ƒ์น˜๊ฐ€ ํ•™์Šต์„ ๋ฐฉํ•ดํ•œ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ์š”?
A: ์ด์ƒ์น˜๊นŒ์ง€ ํ•™์Šต๋˜์–ด ์ผ๋ฐ˜ํ™”๊ฐ€ ์–ด๋ ค์›Œ์ง€๊ณ  ๊ณผ๋Œ€์ ํ•ฉ์˜ ์šฐ๋ ค๊ฐ€ ์žˆ๋‹ค.

Q: train ์˜ ์ •๋‹ต์— ์ด์ƒ์น˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒŒ ์ข‹์„๊นŒ์š”?
A: ๋„ˆ๋ฌด ํฐ ๊ฐ’์„ ํ‰๊ท ์ด๋‚˜ ์ค‘์•™๊ฐ’์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค๋ฉด ์‹ค์ œ ๊ฐ’์ด ๋งŽ์ด ์™œ๊ณก์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ์ •๋‹ต๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜ ์‹ค์Šต์—์„œ ์Šค์ผ€์ผ๋ง์„ ํ•ด์ค„ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์Šค์ผ€์ผ๋ง์„ ํ•˜๊ฒŒ ๋˜๋ฉด log๋ฅผ ์ทจํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋‹ค์‹œ ๋ณต์›๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


๐Ÿฆ ์งˆ๋ฌธ

Q: category๋ž‘ object(string)๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ๊ฐ€์š”?
A: ๋‹ค๋ฅด๋‹ค.

Q: ํ”ผ์ฒ˜ ์ค‘์š”๋„๋Š” ๋†’๋‹ค๊ณ  ๋‚˜์˜ค๋Š”๋ฐ ์„ฑ๋Šฅ ์ž์ฒด๊ฐ€ ๋–จ์–ด์กŒ์œผ๋ฉด ์“ธ๋งŒํ•œ ํ”ผ์ฒ˜๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฑด๊ฐ€์š”?
A: ํ•ด๋‹น ๋ชจ๋ธ์ด ํ•™์Šต์„ ํ•  ๋•Œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ–ˆ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์ง€๋งŒ ํ”ผ์ฒ˜ ์ค‘์š”๋„๊ฐ€ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ์„ค๋ช…ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์€ ๋ชจ์˜๊ณ ์‚ฌ๋ฅผ ๋ณด๋Š” ๊ณผ์ •๊ณผ ์œ ์‚ฌํ•œ cross validation ์ ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐ”๋Š”์ง€ ๋‚ด๋ ค๊ฐ”๋Š”์ง€๋ฅผ ํ™•์ธํ•ด ๋ด…๋‹ˆ๋‹ค. (score ์ธก์ • ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์ ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐ€์•ผ์ง€ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ธ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋Š” ์ธก์ • ์ง€ํ‘œ๋„ (r2 score) ์žˆ๊ณ , ๋‚ด๋ ค๊ฐ€์•ผ ์ข‹์€ ์ธก์ •์ง€ํ‘œ๋„ ์žˆ์œผ๋‹ˆ ๊ตฌ๋ถ„ํ•ด์„œ ๋ณด์„ธ์š”).

Q: ๊ทธ๋Ÿผ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ–ˆ๋‹ค๋Š”๊ฒŒ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๊ฑด๊ฐ€์š”?
A: ํ”ผ์ฒ˜ ์ค‘์š”๋„๋ž€ ์–ด๋Š ๋ฐ์ดํ„ฐ ์š”์†Œ๊ฐ€ ํ™•๋ฅ ๊ฐ’ ๊ณ„์‚ฐ์— ์ค‘์š”ํ•˜๊ฒŒ ์ž‘์šฉ์„ ํ–ˆ๋Š๋ƒ ํ•˜๋Š” ์ •๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด์ง€ ์ค‘์š”๋„๊ฐ€ ๋†’๋‹ค๊ณ  ์ ์ˆ˜์— ์ข‹์€ ์˜ํ–ฅ(์„ฑ๋Šฅ)์„ ๋ฏธ์นœ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค!

Q: ์ ์ˆ˜๊ฐ€ ๋†’์•„์•ผ ์ข‹์€ ์ธก์ •์ง€ํ‘œ์™€ ๋‚ฎ์•„์•ผ ์ข‹์€ ์ธก์ •์ง€ํ‘œ์˜ ์˜ˆ์‹œ๋„ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ์š”?
A: R square score ๋Š” 1์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ๋” ์ข‹์€ ์„ฑ๋Šฅ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ธก๊ฐ’๊ณผ ์‹ค์ œ๊ฐ’์ด ๊ฐ™์œผ๋ฉด 1์ด ๋ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€๊ฐ’์ด 1์ธ๋ฐ ํด์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ํšŒ๊ท€์˜ ์ธก์ •๊ณต์‹์€ ์˜ค์ฐจ๋ฅผ ์ธก์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ฎ์•„์•ผ ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์ ์ˆ˜๊ฐ€ ๋†’์•„์•ผ ์ข‹์€ ์ธก์ • ์ง€ํ‘œ์˜ ์˜ˆ์‹œ๋Š” ์ •ํ™•๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ถ„๋ฅ˜์˜ ์ธก์ •์ง€ํ‘œ์ธ Accuracy์™€ ํšŒ๊ท€ ๋ชจ๋ธ์—์„œ ๋…๋ฆฝ๋ณ€์ˆ˜๊ฐ€ ์ข…์†๋ณ€์ˆ˜๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ ์„ค๋ช…ํ–ˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒฐ์ •๊ณ„์ˆ˜ (r2 score)๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ ์ˆ˜๊ฐ€ ๋‚ฎ์•„์•ผ ์ข‹์€ ์ธก์ • ์ง€ํ‘œ๋Š” ์—๋Ÿฌ ๊ธฐ๋ฐ˜์˜ ์ธก์ • ์ง€ํ‘œ์ธ MAE, MSE, RMSE ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Q: ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ base path ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ "/ํŒŒ์ผ๋ช…"์œผ๋กœ ์„ค์ •ํ•˜๋‚˜์š”?
A: ์ƒ๋Œ€๊ฒฝ๋กœ์ธ์ง€ ์ ˆ๋Œ€๊ฒฝ๋กœ์ธ์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • ์ƒ๋Œ€๊ฒฝ๋กœ๋Š” ํ˜„์žฌ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ๊ฒฝ๋กœ. eg) ./ == ํ˜„์žฌ๊ฒฝ๋กœ
    ../ == ์ƒ์œ„๊ฒฝ๋กœ
  • ์ ˆ๋Œ€๊ฒฝ๋กœ๋Š” ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ๋‹ค ์ง€์ •ํ•˜๋Š” ๊ฒฝ๋กœ eg) ์œˆ๋„์šฐ C: ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ๋กœ
  • ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ปดํ“จํ„ฐ์—์„œ ๋™์ž‘ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋˜๋„๋ก์ด๋ฉด ์ƒ๋Œ€๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Q: ipynbํŒŒ์ผ๊ณผ ๋ฐ์ดํ„ฐ์…‹์ด ์ฅฌํ”ผํ„ฐ๋…ธํŠธ๋ถ ์ƒ ๊ฐ™์€ ํŒŒ์ผ ๋‚ด ์žˆ์œผ๋ฉด base_path = "./" ์œผ๋กœ ํ•˜๋ฉด ๋˜๋‚˜์š”?
A: .ipynb ์™€ csv ํŒŒ์ผ์ด ๊ฐ™์ด ์žˆ๋‹ค๋ฉด csv ํŒŒ์ผ์ด๋ฆ„๋งŒ ์ง€์ •ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. data ํด๋” ์— ์•ˆ์— ์žˆ๋‹ค๋ฉด ํด๋”๋ฅผ ์ง€์ •ํ•ด ์ฃผ์„ธ์š”! ๊ฐ€์žฅ ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ .ipynb ํŒŒ์ผ๊ณผ data ํด๋”๋ฅผ ๊ฐ™์€ ์œ„์น˜์— ๋‘๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ƒ๋Œ€๊ฒฝ๋กœ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ™์€ ์œ„์น˜๋ฅผ ๋œปํ•˜๋Š” ํ‚ค์›Œ๋“œ๋Š” . ์ž…๋‹ˆ๋‹ค.

Q: dt.dayofweek๊ฐ€ ์•Œ์•„์„œ ์š”์ผ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ๋Š”๊ฑด๊ฐ€์š”?
A: dt ์ ‘๊ทผ์ž์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

The day of the week with Monday=0, Sunday=6.

Q: ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋งŽ์ด ์น˜์šฐ์นœ ๊ทธ๋ž˜ํ”„๋„ ๋กœ๊ทธ๋ฅผ ์ทจํ•˜๋ฉด ์ •๊ทœ๋ถ„ํฌ์— ๊ฐ€๊นŒ์›Œ ์ง€๋‚˜์š”?
A: ์–ด๋–ค ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์ ธ ์žˆ๋“  ๋„ˆ๋ฌด ์น˜์šฐ์น˜๊ฑฐ๋‚˜ ๋พฐ์กฑํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์™„๋งŒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์™„์ „ํ•œ ์ •๊ทœ๋ถ„ํฌ๊ฐ€ ๋˜์ง€๋Š” ์•Š๋”๋ผ๋„ ์ •๊ทœ๋ถ„ํฌ์— ์ข€ ๋” ๊ฐ€๊นŒ์šด ํ˜•ํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Q: ์‹ค๋ฌด์—์„œ๋Š” ์–ด๋–ค ํ‰๊ฐ€์ง€ํ‘œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ• ์ง€ ์Šค์Šค๋กœ ๊ฒฐ์ •์„ ํ•ด์•ผํ• ํ…๋ฐ ์ด๋•Œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ‰๊ฐ€์ง€ํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜์š” ์•„๋‹ˆ๋ฉด ์ฒ˜์Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ์ฒ˜์Œ์— ๊ฒฐ์ •ํ•˜๋‚˜์š”?
A: ์‹ค๋ฌด์—์„œ๋Š” ๋ณดํ†ต ๋น„์ฆˆ๋‹ˆ์Šค ํ‰๊ฐ€์ง€ํ‘œ๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ์ง„๋Œ€ํšŒ๋‚˜ ์‹ค์Šต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ‰๊ฐ€์ง€ํ‘œ๋Š” ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•ด์„œ ๊ฐ๊ด€ํ™” ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ๋ชฉ์ ์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด์„œ ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋ชจ๋ธ์˜ ๋ชฉ์ ์ด DAU(Daily Active User)๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด๋ผ๋ฉด DAU๋ฅผ ์ธก์ •ํ•˜๊ณ  ๋งค์ถœ์„ ๋Š˜๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ๋งค์ถœ์•ก์ด ๋Š˜์–ด๋‚ฌ๋Š”์ง€, ๊ตฌ๋งค์ž์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚ฌ๋Š”์ง€ ๋“ฑ์„ ํ‰๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Q: ์ €๋Š” rmsle ๊ตฌํ•œ ๊ฒƒ๊ณผ rmse ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ต๋‹ˆ๋‹ค.
A: ์œ„์—์„œ ๊ตฌํ•œ best_model ๋กœ ๋‹ค์‹œ cross_val_predict ๋ฅผ ํ•˜๋ฉด์„œ cv๋ฅผ ๋‹ค์‹œ ๋‚˜๋ˆ ์„œ ํ•™์Šตํ•˜๊ณ  ์˜ˆ์ธกํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ๏ธ TIL

  • ์‚ฌ์‹ค(Fact): log์™€ feature engineering์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค.
  • ๋Š๋‚Œ(Feeling): ์•„์ง ๊ฐˆ ๊ธธ์ด ๋ฉ€๋‹ค.
  • ๊ตํ›ˆ(Finding): kaggle ์—์„œ ์ง„ํ–‰ ์ค‘์ธ ๋Œ€ํšŒ ์ค‘ ๋‚ด ์ˆ˜์ค€์— ๋งž๋Š” ๊ฒƒ์„ ๊ณจ๋ผ ๋ณต์Šตํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์•ผ๊ฒ ๋‹ค.
profile
๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก โœ๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€