Feature Engineering
- ๋๋ฉ์ธ ์ง์๊ณผ ์ฐฝ์์ฑ์ ๋ฐํ์ผ๋ก, ๋ฐ์ดํฐ์
์ ์กด์ฌํ๋ feature๋ค์ ์กฐ์ํ๋ ๊ฒ
- ์ ๊ทธ๋ฆผ์ฒ๋ผ 2๊ฐ์ feature๊ฐ ์์ ๋, 2๊ฐ๋ฅผ ์กฐํฉํ์ฌ ์๋ก์ด feature๋ฅผ ๋ง๋ค ์ ์๋ค.
- ํต๊ณ๋ถ์, ๋จธ์ ๋ฌ๋, ๋์๊ฐ ๋ฅ๋ฌ๋๊น์ง ๋๋ถ๋ถ์ ๋ถ์์ ๋ฐ์ดํฐ์ ์๋ ํจํด์ ์ธ์ํ๊ณ , ํด๋น ํจํด์ ๋ฐํ์ผ๋ก ์์ธก์ ํ๊ธฐ ๋๋ฌธ์ ๋ ์ข์ ํผํฌ๋จผ์ค๋ฅผ ์ํ์ฌ ์๋กญ๊ณ , ์๋ฏธ์๋ ํจํด์ ์ ๊ณตํ๋ ๊ฒ์ด feature engineering์ ๊ถ๊ทน์ ์ธ ๋ชฉ์ ์ด๋น.
Dataframe
- pandas์ dataframe์ ๋ํ ๊ฐ๋จํ ์ค๋ช
์ผ๋ฐ์ ์ผ๋ก - ํ๋์ ํ์๋ ํ๋์ ๋ฐ์ดํฐ(๊ด์ธก์น)
- ํ๋์ ์ด์๋ ํ๋์ feature๋ฅผ ์ ์ฅํ ๊ฒ์ ๊ถ์ฅ
- ์ด๋ฐ ํํ๋ฅผ tidyํํ๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๊ณผ์ ํธํ์ฑ์ด ์ข๋ค.
Dataset
์๋ก์ด ์นผ๋ผ(feature)๋ฅผ ๋ง๋ค ๋
import pandas as pd
df['new'] = df['old1'] + df['old2']
์ด๋ฐ ์์ผ๋ก ๊ธฐ์กด์ ์๋ old1, old2 ์นผ๋ผ์ ๋ํด์ new๋ผ๋ ์๋ก์ด ์นผ๋ผ์ด ๋ํด์ง(์ค๋ฅธ์ชฝ์ ๋ํด์ง๋ค.)
์นผ๋ผ๋ค์ ๋ฐ์ดํฐ ํ์ ๋ณด๊ธฐ
df.dtypes
- ๊ฒฐ์ธก์น(NaN)์ ํ๋ก๊ทธ๋๋ฐ ์ float์ผ๋ก ๊ตฌ๋ถ๋๋ค.
๊ฒฐ์ธก์น๋ค๋ ์ด๋ฐ ์ฐจ์ด๊ฐ ์๋ค. ๋ ์์ธํ ๊ฑด ๊ตฌ๊ธ๋งํด๋ณด์.
String(๋ฌธ์ํ) ๋ค๋ฃจ๊ธฐ
์์น ์ค '25,970'๊ณผ ๊ฐ์ด ์ ํ์๋ ๊ฑด ์ซ์ํ์ด ์๋๊ณ str(object)๋ก ๊ตฌ๋ถ๋๋ค.(์ผํ๊ฐ ์์ด์)
ํด์ ์ด ์ผํ๋ฅผ ์์ ์ค์ 25970์ผ๋ก ๋ง๋ ํ ์ซ์ํ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
x = '25,970'
x = x.replace(',','') # ','(์ผํ)๋ฅผ ''๋น์นธ์ผ๋ก ๋์ฒด -> ์ฆ ์ผํ๋ฅผ ์์ ์ฃผ๋ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ
x = int(x) # ์์์ ์ผํ๋ง ์์ ๊ณ ์์ง ๋ฌธ์ํ์ด๋ค. ๊ทธ๋์ ์ซ์ํ์ผ๋ก ๋ณํ.
์ ๊ณผ์ ์ ํจ์๋ก ํธํ๊ฒ ์ฐ๋ ค๋ฉด
def toint(string):
return int(string.replace(',',''))
์ด๋ฐ ์์ผ๋ก ์จ์ค๋ค. ๊ฐ๋จ์ฐ~
Apply
์ ๊ทธ๋ ๋ค๋ฉด, ์์ ๊ฐ์ด ํจ์ ์ ์ํด์ ๋ฐ์ดํฐ์ ์ ์ฉํ๋ ๊ฑฐ ์์ฃผ ์ข๋ค.
๊ทธ๋ฐ๋ฐ! ์ด๊ฑธ ๊ฐ ๋ฐ์ดํฐ ๊ฐ์ ์ด๋ป๊ฒ ์ ์ฉํด์ค๋???!!!
ํ๋ํ๋ ํ ์๋ ์๋ค. column ๋จ์๋ก ํด๋ณด์!!(feature๋ณ๋ก ์๋ฃํ์ด ๊ฐ์ํ
๋)
df['ํ์ด'] = df['ํ์ด'].apply(toint)
์ด๋ฐ์์ผ๋ก ํด์ฃผ๋ฉด ๋๋ค! (apply ํจ์์ ์์คํจ์ฐ)
'๐ฟ Data > ๋ถํธ์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL]4.Basic Derivative (0) | 2021.11.27 |
---|---|
[TIL]3.Data Manipulation(๊ฐ์ธ์ ์ผ๋ก ์ ์์์ผ ๋๋ค๊ณ ๋๊ผ๋ ๋ถ๋ถ) (0) | 2021.11.27 |
[TIL]8.Confidence Intervals (0) | 2021.11.27 |
[TIL]7.Hypothesis Test + (0) | 2021.11.26 |
[TIL]1.Exploratory Data Analysis(EDA) (0) | 2021.11.24 |