์ฑ์ฑํ ๋ฐ์ดํฐ(= ์ ์ ๋์ง ์์...)๋ฅผ ๋ฐ์์ ๋ ์ ์์
์๋ก
๋์ ์กธ์
๊ณผ์ ์ฃผ์ ๋ '์ฃผ๊ฐ ์์ธก'์ด๋ค.
๋ฅ๋ฌ๋์ผ๋ก ๊ตฌํ๋ง ํ ์์๋ค๋ฉด, ์์ฒญ๋ ๋ถ์๊ฐ ๋ ์ ์๋ ์ฃผ์ ์ง๋ง, ๋๋ถ๋ถ์ ๊ด๋ จ ๋
ผ๋ฌธ์์๋ ์ฃผ์์ ๋ณ์๊ฐ ๋ง์์ ์์ธก์ด ์ด๋ ต๋ค๋ ๋ง์ด ๋ง์๋ค.
์ด์ฐ๋์๋ , ์ฃผ๊ฐ์ ์์น์ ์์ธกํ๋ ๊ณผ์ ๋ฅผ ํ๊ฒ ๋์๊ณ , ๊ฐ์ฅ ํฐ ๋๊ด์.. ๋ฐ์ดํฐ ๊ฐ๊ณต์ด์๋ค.
์ด๋ฒ ๊ธ์์๋ ๋ด๊ฐ ๊ทธ์ผ๋ง๋ก ์ฑ์ฑํ ๋ฐ์ดํฐ.. ๋ฅผ ๋ฐ๊ฒ ๋์์ ๋ ํํ๊ธฐ๋์์ ์ฝ์ง์ ํตํด ์ป๊ฒ๋ ์ง์์ ๊ธฐ๋กํด ๋ณด๊ณ ์ ํ๋ค.
์ป๊ฒ๋ ์ง์
1. Domain(๋ฐ์ดํฐ๋ฅผ ์ค ์ฌ๋๋ค์ ๋ถ์ผ์ ์ง์)์ ์๊ธฐ
ํ๋ก์ ํธ๋ฅผ ์์ํ ๋๋ง ํด๋ ๊ฑฐ์ ์ฃผ์์ ๋ฌธ์ธํ์ธ ์ฃผ์๋ชป ์ด๊ธฐ ๋๋ฌธ์, ํ์ฌ์์ ์ค ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฅ ์ต์ํ์ ๊ฐ๊ณต๋ง ํด์, ๋ชจ๋ธ์ ๋ฃ์๋ค. ๊ทธ๋ฌ๋, ๊ทธ๋ฌ๊ธฐ ์ด์ ์ Domain์ ๋ํ ์ต์ํ์ ๊ณต๋ถ๋ ์ ํ์ด ๋์์ด์ผ ํ๋ค. (๋๋ ๊ธํ๊ฒ ์ง์์ ์ต๋ํ๊ธฐ ์ํด, ์ฃผ์ ๊ด๋ จ ๋งํ์ฑ ์ ์ฝ์์๋ค.)
ํ์ฐธ ๋ฐ์ ๋ฐ์ดํฐ๋ก ํ์ต์ ํ์ ๋, ์ฃผ ์์(์ฃผ์์ ์์๋ ์ฌ๋) ์ด ๋ฐ์ดํฐ๋ฅผ ๋ณด๋๋ ์๋ ค์คฌ๋ค. ๋ฐ์ดํฐ๊ฐ ๋ง์ด ์๋๋ ๋ถ๋ถ์ด ์๋ค๊ณ ..
์๊ณ ๋ณด๋ ์ฃผ์์ด ํ๋ฃจ์ 6000% ์ ๋ ๋ฐ๋ ๋ฐ์ดํฐ๋ค์ด ๊ฝค ์์๊ณ , ์ด๋ ํํ๋ฒ์ ๋ถ๋ฒ์ด์๋ค. ์ด๋ฌํ ์ฃผ์๋ค์, ๊ธ์ต์์ํ์์ ๊ตฌ๋งค๋ฅผ ๋ง์๋ค๊ฐ, ๊ตฌ๋งค๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์๋ ๊ฐ์๊ธฐ ์ด๋ ๊ฒ ๊ธ๋ฑ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ํ๋ค..
์ด๋ฌํ ๋ถ์ฐ์์ฑ ๋๋ฌธ์ ์ฃผ์์์ฅ์์๋ '์์ ์ฃผ๊ฐ' ๋ผ๋ ๊ฒ์ ์ฌ์ฉํด์ ๋ถ์ํ๋๋ฐ์ ์ด๋ค๊ณ ํ๋๋ฐ, ๊ทธ๊ฑธ ๋ชฐ๋ผ์, ๊ทธ๋ฅ ์ฃผ๊ฐ๋ฅผ ์ฌ์ฉํ๊ณ ์์๋ค. ๋ง์ฝ '์์ ์ฃผ๊ฐ'๋ฅผ ์์๋ค๋ฉด ์ฒ์๋ถํฐ ๊ฒฐ๊ณผ๋ ๋ ์๋์ค๊ณ ์ข์๊ฒ ์ง..ใ ใ
์ด์ฐ๋์๋ , ๋ฐ์๋๋ก ๊ทธ๋ฅ์ฐ๋ฉด ์๋๊ณ , ๋จ์ํ ์ด์์น๋ฅผ ์ ๊ฑฐํ๊ณ ์ ๊ทํ๋ฅผ ํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ, ๊ฐ ๋ณ์์ ์ง์ง ์๋ฏธ๋ ๊น๊ฒ ์๊ฐํด ๋ณด์์ผ ํ๋ค๋๊ฒ, ๊ทธ ์์ญ์ ๋ํ ๊ณต๋ถ๋ ํด์ผํ๋ค๋ ๊ฒ์ ๋๊ผ๋ค.
2. ์๊ณ์ด ๋ฐ์ดํฐ์ ์ ๊ทํ
์ด ๋ฌธ์ ๋ ํ์ฐธ ๋ฐ์ดํฐ ๊ฐ๊ณต ํ, ์คํ์ ํ๊ณ ๋์ ์๊ฒ ๋ ๋ฌธ์ ์ด๋ค.
์ฃผ์์ ์ ์๋ ํ์์๊ฒ ์ฐ๋ฆฌ ์คํ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์คฌ๋๋, ์ดํ์ ์ ๋ ฅ๋ฐ์๋๋ฐ ์ ํ๋๊ฐ 80%๋ ๋ง์ด ์๋๋ค.. ๋ผ๊ณ ํ์๋ค.
์ฌ์ค ๊ทธ๊ฒ ๋ง๋ ๋ง์ด์๋ค.
์ด๋์ ๋ฌธ์ ๊ฐ ์๋ ์ดํด๋ณด์๋๋ฐ, ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ minmax normalizeํ๊ณ ์์๋ค. ๋ค์ ๋งํด, ๋ฏธ๋์ ์ต๊ณ ๊ฐ๋ฅผ ์๊ณ ์ ๊ทํ๋ฅผ ํ๊ณ ์์๊ธฐ ๋๋ฌธ์, test์์ cheating์ด ์ผ์ด๋๊ณ ์์๋ค.
์ด ๋ถ๋ถ์ ๋ค์ ์ฑ์ฅ๋ฅ ๋ก ์ ๊ทํ๋ฅผ ํ์๊ณ , cheating๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์์๋ค.
3. ๋ฏธ๋๋ฐ์ดํฐ๋ก ๋ฏธ๋ฆฌ ํด๋ณด๊ธฐ
๋ฐ์ดํฐ ๊ฐ๊ณต ์ฝ๋๋ฅผ ๋ค ์งฐ๋ค๋ฉด, ์ง๊ธ ๊ฐ์ง๊ณ ์๋ ๋ฐฉ๋ํ ์์ ๋ฐ์ดํฐ์ ๋ฏธ๋๋ฒ์ ผ์ ๋ง๋ค์ด์ ํ
์คํธ ํด๋ณด๋๊ฒ์ด ๊ผญ ํ์ํ๋ค.
๋ฏธ๋ ๋ฐ์ดํฐ๋ง๋ค๊ธฐ ๊ท์ฐฎ์์ ์ํ๋ค๊ฐ, ๋๋ฒ๊น
ํ๋๋ฐ ์๊ฐ์ด ์ด๋ง์ด๋งํ๊ฒ ๊ฑธ๋ฆฐ์ ์ด ์๋ค. ๊ผญ ๋ฏธ๋๋ฐ์ดํฐ๋ก ๋ง๋ค๊ณ ํ
์คํธ ํ๊ธฐ!
4. ์ค๊ฐ์ค๊ฐ ์ ์ฅํ๊ธฐ
ํ์ด์ฌ์ 'ํผํด'(pkl)์ด๋ผ๋ binary ํ์ผ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
ํผํด ํ์ผ์ ์ผ๋ฐ ํ์ผ๋ณด๋ค ํจ์ฌ load์๋๊ฐ ๋นจ๋ผ์, ๋์ฉ๋ ํ์ผ์ ์ ์ฅํ๋๋ฐ ์ ๋ฆฌํ๋ค.
์ปค๋ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ๋ ์ด ํผํด ํ์ผ์ ์ ์ฉํ๋๋ฐ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
def save_obj(obj, name ):
with open('./obj/'+ name + '.pkl', 'wb') as f:
pickle.dump(obj, f, pickle.HIGHEST_PROTOCOL)
def load_obj(name ):
with open('./obj/' + name + '.pkl', 'rb') as f:
return pickle.load(f)
if __name__ == "__main__":
datas = dataload_origin()
save_obj(datas, "0526regression1")
datas = check_same(datas)
save_obj(datas, "0526regression2")
get_statics(datas)
datas = shuffle(datas)
save_obj(datas, "0526regression3")
datas = add_ratios(datas)
save_obj(datas, "0526regression4")
datas = norm(datas)
save_obj(datas, "0526regression5")
datas = addLabel(datas)
save_obj(datas, "0526regression6")
save(datas)
|
cs |
์ด๋ ๊ฒ ๋ฐ์ดํฐ ๊ฐ๊ณต์ ๊ฐ ๋จ๊ณ๋ง๋ค ํผํดํ์ผ์ ์ ์ฅํ๊ณ , ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๊ทธ ๋ถ๋ถ๋ถํฐ ๋ค์ ์์ํ๋ค.
(load, save ์ฝ๋๋ stackoverflow ์์ ๊ฐ์ ธ์๋๋ฐ, ์ ํํ ํ์ด์ง๊ฐ ์ด๋์ง๋ ๋ชจ๋ฅด๊ฒ ๋คใ )
์๊ฐ์ง๋ ๋ชปํ ์๋ฌ(์๋ฅผ๋ค์ด ์ ์ฅํ ํด๋๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ์ฃผ์ง ์์๋ค๋ ๋ฑ์..)๊ฐ ์๊ฒผ์ ๋ ์ฒ์๋ถํฐ ์์ํ๋๊ฒ์ ๋ฐฉ์งํ ์ ์๋ค.
5. ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋
๋ฐ์ดํฐ๊ฐ ํ๋ฒ๋ง ๋ค์ด์ค๋ฉด ํ๋ฒ ๊ฐ๊ณตํ๊ณ ๋~ ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ํ๋ก์ ํธ ๋ด๋ด ๋ฐ์ดํฐ๊ฐ ์๋ก ๋ค์ด์๋ค. (์ผ์ )
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ '์ผ๋จ๋์๊ฐ๋ ์ฝ๋'๋ก ์ง๋๊ฒ ์๋๋ผ, ๋๊ฐ๋ด๋ ์ฝ๊ณ , ๋ ผ๋ฆฌ์ ์ฐํ๊ณ ๊น๋ํ ์ฝ๋๋ฅผ ์ง๋๊ฒ์ด ์ ์ ์ ์ด๋กญ๋ค :)
์ฝ ๋ฐ๋ ๋์ ์ตํ ๋ฐ์ดํฐ ๊ฐ๊ณต ๊ธฐ์ ์ ์ ๋ฆฌํด ๋ณด์๋ค.
์์ฒญ๋ ๊ธฐ์ ์ ์๋์ง๋ง ์ฒ์ ์ปค๋ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋นํฉ์ค๋ฌ์ด ๋๊ตฐ๊ฐ์๊ฒ, ๊ทธ๋ฆฌ๊ณ ์ต๋ํ ๊ธฐ์ ๋ค์ ๊น๋จน์ ๋ฏธ๋์ ๋์๊ฒ ์ด ๊ธ์ด ์ ์ฉํ๊ฒ ์ฌ์ฉ๋์์ผ๋ฉด ์ข๊ฒ ๋ค