๐ Feature Engineering
(4) ๋ฒ ํฌ์คํ ์์, 1์ฐจ ๋ฒ ์ด์ค๋ผ์ธ ๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํด ๋ณด์๋ค.
ํด๋น ๋ถ์์ ์ํํ ๋ถ์๊ฐ๋ Feature Engineering์ ์ํํ์ฌ ์ ์๋ฏธํ ํ์๋ณ์๋ฅผ ์์ฑํ๊ณ , ๋ค์ ํ๋ฒ ๋ชจ๋ธ๋งํ ๊ฒฐ๊ณผ๊ฐ ๋ ์ข์๋ค๊ณ ํ๋ค. ๋ณธ ํฌ์คํ ์์๋ Feature Engineering์์ ๊ฒํ ํ๊ณ ๋ง๋ค ์ ์๋ ํ์๋ณ์์ ์ข ๋ฅ๋ฅผ ์์๋ณด๊ณ ๊ทธ ๊ณผ์ ์ ์ง์ด๋ณธ๋ค.
๐ง๐ป ๋น์จ ํน์ฑ (Ratio Features)
- ์ด๋ฒ ์ผ์ด์ค๋ ๊ฒ์ ๊ป์ง ๋ฌด๊ฒ, ๋ชธ์ ๊ธธ์ด ๋ฑ ๊ฒ์ ์ ์ฒด์ ํน์ง์ ๊ฐ์ง๊ณ '๋์ด'๋ฅผ ์์ธกํ๋ ๊ฒ์ด์๋ค.
- ์ฌ๊ธฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฃผ์ด์ง ๋ณ์๋ฅผ ํ ๋๋ก ์ ์ฒด ์ค์ ํน์ ๋ณ์๋ฅผ ๋๋์ด, ํน์ '๋น์จ'์ ๋์ถํ์ฌ ํ์๋ณ์๋ฅผ ์์ฑํ ์ ์๋ค.
- Ratio Features ๋ผ๊ณ ํ๋ฉฐ, ์๋ก ๋ค๋ฅธ ์์ ๊ฐ ์๋์ ํฌ๊ธฐ ๋น๊ต๋ฅผ ์ฉ์ดํ๊ฒ ํด์ค๋ค.
- ์์๋ ๋ค์๊ณผ ๊ฐ๋ค
- Viscera Ratio = Viscera Weight / Total Weight
- Shell Ratio = Shell Weight / Total Weight
- Shell-to-Body Ratio = Shell Weight / (Total Weight + Shell Weight)
- Meat Yield = Shucked Weight / (Total Weight + Shell Weight)
- Length-to-Diameter Ratio = Length / Diameter
- Weight-to-VisceraWeight Ratio = Total Weight / Viscera Weight
- Weight-to-ShellWeight Ratio = Total Weight / Shell Weight
- Weight-to-ShuckedWeight Ratio = Total Weight / Shucked Weight
๐ง๐ป ๊ธฐํํ์ ํน์ฑ (Geometric Features)
- Geometric Features์, ์ด๋ฒ ์คํฐ๋์ธ ๊ฒ์ '์ ์ฒด์ ' ํน์ง์ ์ดํดํ๋๋ฐ ๋์์ ์ค๋ค. ๋ฐ์ดํฐ ์ ์ ๋ฐ๋ผ ํด๋น ํผ์ณ ์์ฑ์ด ๋์์ด ๋ ์๋ ์๊ณ ์๋ ์๋ ์๋ ๊ฒ์ด๋ค.
- ๋ํ์ ์ผ๋ก๋ ๋ฐ๋, BMI ์ง์, ํ๋ฉด์ , ๋ถํผ ๋ฑ์ ์์ฑํ ์ ์๋ค.
- ์์๋ ๋ค์๊ณผ ๊ฐ๋ค
- Surface Area = 2 * (Length * Diameter + Length * Height + Diameter * Height)
- Volume = Length * Diameter * Height
- Density = Total Weight / Volume
- Pseudo BMI = Total Weight / (Height ^ 2)
๐ง๐ป ๋คํญ ํน์ฑ (Polynomial Features)
- Polynomial Features๋ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ํ์ฅํ์ฌ ๋คํญ์ ํํ๋ก ๋ณํํ๋ ์ ์ฒ๋ฆฌ๋ฅผ ๊ฑฐ์ณ ์์ฑํ๋ค.
- ํนํ, ์ ํ ๋ชจ๋ธ์์ ๋ณ์ ์ฌ์ด์ ๋น์ ํ ๊ด๊ณ๋ฅผ ํฌ์ฐฉํ๋๋ฐ ๋์์ ์ค๋ค.
- ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ์ฐจ์์ ํ์ฅํ์ฌ ๋ชจ๋ธ์ด ๋ ๋ณต์กํ ๊ด๊ณ๋ฅผ ํ์ตํ๋๋ก ๋์์ค๋ค.
- ๋คํญ์ ํน์ฑ์ ๋ง๋ค ๋๋ ์ ๋ ฅ ๋ณ์์ ๊ฑฐ๋ญ์ ๊ณฑ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค
- ์ฃผ๋ก ๋คํญ ํ๊ท๋ ๋คํญ ๋ถ๋ฅ ๋ฌธ์ ์์ ์ฌ์ฉ๋๋ค.
- ์์๋ ๋ค์๊ณผ ๊ฐ๋ค(์ํ์ ์ผ๋ก ํญ์ ์ฐธ์ธ ๋ฑ์)
- Length^2 = Length ^ 2
- Diameter^2 = Diameter ^ 2
๐ง๐ป ๋ก๊ทธ ๋ณํ (Logarithmic Transformations)
- ์๋๋ฅผ ์ค์ด๊ณ , ๊ทน๋จ ๊ฐ์ ์กฐ์ ํ๋๋ฐ ๋์์ด ๋๋ ๋ก๊ทธ ๋ณํ์ด๋ค.
- ์๋ ์กฐ์ , ๋ถ์ฐ ์์ ํ(๋ฐ์ดํฐ ๋ณ๋์ฑ ์ถ์), ์๋์ ํฌ๊ธฐ ์กฐ์ (๋ฐ์ดํฐ๊ฐ ๋ค์ํ ๋ฒ์/์ค์ผ์ผ์ ๊ฐ์ง๊ณ ์์ ๋)์ ์ฌ์ฉ๋๋ค.
- ์ฃผ๋ก ์์ ๊ฐ์ ๊ฐ์ง๋ ๋ฐ์ดํฐ์ ์ ์ฉ๋๋ฉฐ, ๋ก๊ทธ ํจ์(base 10 ๋๋ ์์ฐ ๋ก๊ทธ)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ค.
- ์์๋ ๋ค์๊ณผ ๊ฐ๋ค
- Log Weight = log(Total Weight + 1)
๐ง๐ป ํผ์ณ ๋ฒ์ฃผํ (Binned Features)
- ์ ๋ ฅ ๋ณ์์ ๊ฐ์ ๋ฒ์ฃผ ํํ๋ก ๋๋์ด ์ฒ๋ฆฌํ์ฌ, ํ๊ฒ ๋ณ์์์ ๊ด๊ณ๋ฅผ ๋ ์ ์ดํดํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ์ ๋ ฅ ๋ณ์์ ๊ฐ์ ๊ตฌ๊ฐ์ผ๋ก ๋๋์ด ์ด์ฐํํ ์ ์๋ค. ์ดํ, ๋ฒ์ฃผ๋ณ๋ก ํต๊ณ์น(ํ๊ท , ์ค์๊ฐ, ํ์คํธ์ฐจ)๋ฅผ ๊ณ์ฐํ์ฌ ๋ฒ์ฃผ์ ๋ํ๊ฐ์ผ๋ก ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
- ์ด์ฐํ๋ ๋ฒ์ฃผ์ ํ๊ฒ ๋ณ์ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์๊ฐํํ๊ฑฐ๋ ํต๊ณ๋ถ์์ ํตํด ๋ ์ฝ๊ฒ ํ๊ฒ ๋ณ์์์ ๊ด๊ณ ํ์ ์ ํ ์ ์๋ค.
- ๋ฐ์ดํฐ ๋ณต์ก์ฑ์ ์ค์ด๊ณ ๋ชจ๋ธ ํด์์ ์ฉ์ดํ๊ฒ ํ๋ฉฐ, ํนํ ์ ํ ๋ชจ๋ธ ๋ฐ ํธ๋ฆฌ ๊ธฐ๋ฐ ๋ชจ๋ธ๊ณผ ๊ฐ์ ์ผ๋ถ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ ์ฉํ๋ค.
- ํ์ง๋ง, ๊ตฌ๊ฐ์ ์ด๋ป๊ฒ ์ ํํ๋๋์ ๋ฐ๋ผ ๋ชจ๋ธ ์ฑ๋ฅ๊ณผ ํด์์ด ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก ์ ์คํ๊ฒ ๊ฒฐ์ ํด์ผ ํ๋ค.
- ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
- Length Bins = Binned version of Length (e.g., quartiles)
๐ง๐ป ์ฐธ๊ณ : ๋ฐ์ดํฐ์ ๋ง๋ ์๋ก์ด ํ์๋ณ์ ์์ฑ
- ๋ฐ์ดํฐ ์ ์ด ๊ฐ์ง๊ณ ์๋ ๋ณ์๋ณ ํน์ฑ์ ํ์ ํ์ฌ ์๋ก์ด ๋ณ์๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์ด๋ค.
- ์ด ์์์์๋ ๊ฒ์ ์ฒด์ง๋ ์ง์์ ์ ์ก ์ค๋์ ์ ์ธํ ๋ฌด๊ฒ ๋ฑ์ ์์ฑํ๋ค. (Derived Weight Features ์๋ ์์)
- Weight_wo_Viscera = Shucked Weight - Viscera Weight
- Body Condition Index = sqrt(Length * Total Weight * Shucked Weight)
์ค์ ๋ก ๋ณธ ๋ถ์๊ฐ๋ ์๋ก์ด ๋ณ์๋ฅผ ์์ฑํ์ฌ ๋ ๋์ ๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค๊ณ ํ๋ค.
๋ฐ์ดํฐ ์ ์์ฒด์ ๋ฐฐ๊ฒฝ์ ๋ํ ์ถฉ๋ถํ ์ดํด์ ์กฐ์ฌ๊ฐ ํ์ํ๋ฉฐ, ์ด๋ฅผ ๋ฐํ์ผ๋ก ์ ๊ทน์ ์ธ ํผ์ณ ์์ง๋์ด๋ง์ ํ์์ฑ์ ๋๊ผ๋ค!
์คํฐ๋ ์ถ์ฒ
https://www.kaggle.com/competitions/playground-series-s3e16/discussion/415721