profile-img
The merit of an action lies in finishing it to the end.
slide-image

ํ•™ํšŒ์—์„œ ์ฃผ์–ด์ง„ ์ง€๋ฌธ์— ๋Œ€ํ•œ ๊ฐ๊ด€์‹ ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•˜๋Š” Question Generation NLP ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด๋‹ค.

QG ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฐ์ดํ„ฐ์…‹์„ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

1. SQuAD 

https://rajpurkar.github.io/SQuAD-explorer/

 

The Stanford Question Answering Dataset

What is SQuAD? Stanford Question Answering Dataset (SQuAD) is a reading comprehension dataset, consisting of questions posed by crowdworkers on a set of Wikipedia articles, where the answer to every question is a segment of text, or span, from the correspo

rajpurkar.github.io

- ์˜์–ด ๋จธ์‹ ๋Ÿฌ๋‹ Reading Comprehension ๋ฐ์ดํ„ฐ์…‹ 

- ๋ฒ„์ „: v1.1, v2.0

Stanford Question Answering Dataset (SQuAD)์˜ ์•ฝ์ž๋‹ค. ์šฐ๋ฆฌ๋Š” QG ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์›๋ž˜๋Š” QA๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ์…‹์ด๋‹ค.

๋ฒ„์ „ v1.1์˜ ๊ฒฝ์šฐ์—๋Š” 500+๊ฐœ์˜ ์•„ํ‹ฐํด๋กœ ๋งŒ๋“ค์–ด์ง„ 100,000+๊ฐœ์˜ QA ์Œ์ด ์กด์žฌํ•œ๋‹ค.

์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ ํ™•์ธํ•ด๋ณด๋ฉด, ์˜ˆ์‹œ ์ง€๋ฌธ๊ณผ ground truth ๋ฐ์ดํ„ฐ, ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ธกํ•œ ๋‹ต ์ผ๋ถ€๋ฅผ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์•„๋ฌด๋ž˜๋„ ๋Œ€ํšŒ ํ˜•์‹์ด๋‹ค ๋ณด๋‹ˆ๊นŒ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์ด ์–ผ๋งˆ๋‚˜ ๋‹ต๋ณ€์„ ์ž˜ ์ฐพ์•˜๋Š”์ง€ (๋†’์€ ์ ์ˆ˜๋ฅผ ์–ป์—ˆ๋Š”์ง€) ์Šค์ฝ”์–ด๋ณด๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

v1.1์—๋Š” ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ์งˆ๋ฌธ ๋ฐ์ดํ„ฐ๋งŒ ํฌํ•จ๋˜์–ด์žˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด, v2.0์—๋Š” ์ผ๋ถ€๋Ÿฌ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊นŒ์ง€ ํฌํ•จ์ด ๋˜์–ด์žˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ์— ๋ชจ๋ธ์€ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ์ž„์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

QG ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ง€๋ฌธ๊ณผ ์งˆ๋ฌธ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ ํฌ๊ฒŒ ์ƒ๊ด€์€ ์—†๋‹ค.

 

2. KorQuAD

https://korquad.github.io/

 

KorQuAD

What is KorQuAD 2.0? KorQuAD 2.0์€ KorQuAD 1.0์—์„œ ์งˆ๋ฌธ๋‹ต๋ณ€ 20,000+ ์Œ์„ ํฌํ•จํ•˜์—ฌ ์ด 100,000+ ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ•œ๊ตญ์–ด Machine Reading Comprehension ๋ฐ์ดํ„ฐ์…‹ ์ž…๋‹ˆ๋‹ค. KorQuAD 1.0๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ 1~2 ๋ฌธ๋‹จ์ด ์•„๋‹Œ Wikipedia artic

korquad.github.io

- ํ•œ๊ตญ์–ด ๋จธ์‹ ๋Ÿฌ๋‹ Reading Comprehension ๋ฐ์ดํ„ฐ์…‹

- ๋ฒ„์ „: v1.0, v2.0

SQuAD์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฐ์ดํ„ฐ์…‹์ด๋‹ค. ๋Œ€์‹  ํ•œ๊ตญ์–ด๋กœ ๋˜์–ด์žˆ๋‹ค๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ํ‚คํ”ผ๋””์•„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ œ์ž‘๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. SQuAD v2.0์€ v1.0๊ณผ ๋‹ค๋ฅด๊ฒŒ 1~2๋ฌธ๋‹จ์ด ์•„๋‹Œ ์œ„ํ‚คํ”ผ๋””์•„ ์ „์ฒด์—์„œ ๋‹ต์„ ์ฐพ๋Š”๋‹ค๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

 

SQuAD์™€ KorQuAD๋Š” ๋™์ผํ•œ ์–ด๋…ธํ…Œ์ด์…˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ์…‹์ด๋ฏ€๋กœ, ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ์›ํ•˜๋Š” ์–ธ์–ด๊ฐ€ ์˜์–ด์ธ์ง€ ํ•œ๊ตญ์–ด์ธ์ง€์— ๋”ฐ๋ผ์„œ ์ ์ ˆํ•˜๊ฒŒ ์„ ํƒํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

'CS study/๋จธ์‹ ๋Ÿฌ๋‹' Related Articles +

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ (๋ฒ”์ฃผํ˜•) ์ž๋ฃŒ ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ Mean Target Encoding์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค.

์‚ฌ์‹ค ๋‚˜๋Š” ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜ ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์— ๋ผ๋ฒจ์ธ์ฝ”๋”ฉ๊ณผ ์› ํ•ซ ์ธ์ฝ”๋”ฉ๋งŒ ์žˆ๋Š” ์ค„ ์•Œ์•˜๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋ฒˆ ์ฑ„๋ฌด๋ถˆ์ดํ–‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ๋‚ด๊ฐ€ ํ–ˆ๋˜ ์ ˆ์ฐจ๋“ค์ด ์‚ฌ์‹ค์€ Mean Target Encoding์ด์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์–ด ๋†€๋ž„ ์ˆ˜๋ฐ–์— ์—†์—ˆ๋‹ค.

 

์•„๋ฌดํŠผ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€์ž.

๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€๋Š”, ์ด์ „์— ๋‚ด๊ฐ€ ์ž‘์„ฑํ•˜์˜€๋˜ ๊ธ€์„ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

https://iamnotwhale.tistory.com/5

 

[EDA] ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜๋ณ„ ์‹œ๊ฐํ™” ๋ฐฉ๋ฒ•

๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜ ๋ฐ์ดํ„ฐ๋Š” ํฌ๊ฒŒ ๋ฒ”์ฃผํ˜•, ์ˆ˜์น˜ํ˜• ๋‘ ๊ฐ€์ง€ ๋ถ„๋ฅ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ฒ”์ฃผ/์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฐ๊ฐ์˜ ์ด๋ฆ„์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜๋‹ค. ex) ์„ฑ๋ณ„ - ์—ฌ์„ฑ, ๋‚จ์„ฑ / ํ•™๋ ฅ - ์ดˆ์กธ,

iamnotwhale.tistory.com

๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด, ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜๋Š” ๋ฒ”์ฃผ/์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์„ฑ๋ณ„์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์—ฌ์„ฑ ๋˜๋Š” ๋‚จ์„ฑ์œผ๋กœ ๋ถ„๋ฅ˜๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜๋‹ค.

๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜์˜ ํ•˜์œ„ ๋ถ„๋ฅ˜๋กœ ๋ช…๋ชฉํ˜• (์—ฌ์„ฑ, ๋‚จ์„ฑ), ์ˆœ์œ„ํ˜• (1๋“ฑ, 2๋“ฑ, 3๋“ฑ...) ์„ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๊ธ€์—์„œ๋Š” ๋ชฐ๋ผ๋„ ๋œ๋‹ค.

 

๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜๋Š” ๋Œ€๊ฐœ ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์—์„œ object ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ด๋ฅผ ๊ทธ๋Œ€๋กœ ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ํˆฌ์ž…ํ•  ์ˆ˜ ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ปดํ“จํ„ฐ๋Š” ์—ฌ์„ฑ/๋‚จ์„ฑ์ด ๋ฌด์—‡์ธ์ง€ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ค๋กœ์ง€ ์ˆซ์ž ํ˜•ํƒœ๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ๋งŒ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž (int, float) ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ์ธ์ฝ”๋”ฉ์ด๋‹ค.

 

๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜์˜ ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์ œ์‹œ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์€ Label Encoding, One-Hot Encoding์ผ ๊ฒƒ์ด๋‹ค.

Label Encoding์€ ๋‹จ์ˆœํ•˜๊ฒŒ ์—ฌ๋Ÿฌ ์นดํ…Œ๊ณ ๋ฆฌ์— ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธด๋‹ค. ์ด ๋ฒˆํ˜ธ๋Š” ๋ฌด์—‡์ด ๋” ๋‚ซ๊ณ  ๋ณ„๋กœ์ด๊ณ  ์ด๋Ÿฐ ์ •๋ณด๋ฅผ ๊ฐ–์ง€๋Š” ์•Š๋Š”๋‹ค. ๊ทธ๋ƒฅ 1๋ฒˆ ๊ทธ๋ฃน, 2๋ฒˆ ๊ทธ๋ฃน ์ด๋Ÿฐ ๋Š๋‚Œ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋Š” ํŠธ๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ์ผ๋ฐ˜์ ์ธ ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ด๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

One-Hot Encoding์€ ํ•˜๋‚˜์˜ ์นผ๋Ÿผ๋งŒ Hot, ๋‚˜๋จธ์ง€๋Š” Coldํ•˜๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

๋ฌด์Šจ ๋œป์ธ์ง€ ๋ฐ”๋กœ ๊ฐ์ด ์•ˆ ์˜ฌ ์ˆ˜๋„ ์žˆ์–ด ๋‹ค์‹œ ์ •๋ฆฌํ•˜์ž๋ฉด, ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜ ๊ฐ’๋“ค์„ ๊ฐ๊ฐ ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ , ์ด ์ปฌ๋Ÿผ์— ํ•ด๋‹นํ•˜๋Š” ์†์„ฑ์„ ๊ฐ€์งˆ ๋•Œ 1, ์•„๋‹Œ ๊ฑด ์ „๋ถ€ 0์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ‘œ๋กœ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

ID Color
0 Pink
1 Yellow
2 Pink
3 Blue

์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๋•Œ, Color ์นผ๋Ÿผ์— ์› ํ•ซ ์ธ์ฝ”๋”ฉ์„ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด ๋ณ€ํ™˜๋œ๋‹ค.

ID Color_Pink Color_Yellow Color_Blue
0 1 0 0
1 0 1 0
2 1 0 0
3 0 0 1

Color์˜ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๋Š” ์—ด์„ ๊ฐ๊ฐ ์ƒ์„ฑํ•˜์—ฌ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์› ํ•ซ ์ธ์ฝ”๋”ฉ์€ ๋ผ๋ฒจ์ธ์ฝ”๋”ฉ์— ๋น„ํ•ด ์„ฑ๋Šฅ์€ ๋†’์ง€๋งŒ, ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜ ๊ฐ’์ด ๋„ˆ๋ฌด ๋งŽ์„ ๊ฒฝ์šฐ ์ฐจ์›์ด ์ง€๋‚˜์น˜๊ฒŒ ์ปค์ ธ ์„ฑ๋Šฅ์ด ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋Ÿผ Mean Target Encoding์€ ์–ด๋–จ ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

์œ„์—์„œ ์†Œ๊ฐœํ•œ ๋‘ ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์€ ๋‹จ์ˆœํžˆ ๋ถ„๋ฅ˜์—๋งŒ ์‚ฌ์šฉํ•˜๊ณ , Target๊ณผ์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ•์กฐํ•  ์ˆ˜ ์—†๋‹ค.

์› ํ•ซ ์ธ์ฝ”๋”ฉ์˜ ๊ฒฝ์šฐ ๊ฐ’์ด ๋งŽ์•„์ง€๋ฉด ์ฐจ์›์ด ์ง€๋‚˜์น˜๊ฒŒ ์ปค์ง€๋Š” ๋ฌธ์ œ๋„ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Mean Target Encoding์„ ์ด์šฉํ•œ๋‹ค.

 

๊ฐ„๋‹จํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜์ž๋ฉด ํ•ด๋‹น ์นผ๋Ÿผ์˜ ๊ฐ™์€ ๋ผ๋ฒจ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ Target ๊ฐ’์˜ ํ‰๊ท ์œผ๋กœ ์ธ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์˜ฌ๋ฆด ์ˆ˜๋Š” ์—†๊ฒ ์ง€๋งŒ, ์ฑ„๋ฌด๋ถˆ์ดํ–‰ ๋ฐ์ดํ„ฐ ์ค‘์—๋Š” Loan Title์ด๋ผ๋Š” ์นผ๋Ÿผ์ด ์žˆ๊ณ ,

ํ•ด๋‹น ์นผ๋Ÿผ์˜ ๋ผ๋ฒจ์€ ๊ต‰์žฅํžˆ ๋‹ค์–‘ํ•˜๋‹ค.

'Credit card refinancing', 'Debt consolidation',
'Credit card refinance', 'Credit Card Consolidation',
'Debt Consolidation', 'Home improvement', 'Consolidation', 'Other',
'relief', 'debt consolidation loan', 'Major purchase', 'Loan',
'credit card refinance', 'Medical', 'Pool', 'Vacation',
'CC consolidation', 'Medical expenses', 'Moving and relocation',
'payoff', 'Personal Loan', 'debt consolidation', 'Debt Loan',
'House', 'consolidation loan', 'consolidate', 'Credit payoff',
'Bathroom', 'Green loan', 'Debt Payoff', 'Consolidate', 'Business',
'Lending Club', 'Refinance', 'Home Improvement',

๋„ˆ๋ฌด ๋งŽ์•„์„œ ๊ทธ๋ƒฅ ์ด์ •๋„๋งŒ ๊ฐ–๊ณ  ์™”๋‹ค.

์ด๋Ÿฌํ•œ ๋ผ๋ฒจ๋“ค์— ๋”ฐ๋ผ์„œ target (์ด ์ฑ„๋ฌด๋ถˆ์ดํ–‰ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ loan status) ๊ฐ’์˜ ๋น„์œจ, ์ฆ‰ ํ‰๊ท ์„ ๊ตฌํ•˜๊ณ ์ž ํ–ˆ๋‹ค.

(ํ‰๊ท ์€ ๊ฐ’์˜ ํ•ฉ/๊ฐ’์˜ ๊ฐœ์ˆ˜์ธ๋ฐ, target์ด 0, 1๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ‰๊ท ์ด ๋ฐ์ดํ„ฐ์—์„œ 1์˜ ๋น„์œจ๊ณผ ๊ฐ™์•„์ง„๋‹ค)

 

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ๋‹ค.

# ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
df = pd.read_csv("train_loan.csv")

# Target๊ณผ ๋ณ€์ˆ˜๋งŒ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
data = df[['Loan Title', 'Loan Status']]

# Mean Target Encoding
ratio = pd.DataFrame(data.groupby('Loan Title').mean()).reset_index()

# ์ธ์ฝ”๋”ฉ ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”
ratio.sort_values(by = 'Loan Status').plot.bar()
plt.show()

ratio๋ผ๋Š” ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์นผ๋Ÿผ์—์„œ Loan Title ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ groupby ๋ฉ”์„œ๋“œ๋กœ ๋ฌถ๊ณ , mean() method๋ฅผ ์ด์šฉํ•˜์—ฌ Mean Target Encoding์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

์‹œ๊ฐํ™” ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค.

๊ธ€์ž๊ฐ€ ๋งŽ์•„์„œ ์ข€... ์•ˆ ์˜ˆ์˜๊ฒŒ ๋˜๊ธด ํ–ˆ๋Š”๋ฐ ๊ฒฝํ–ฅ๋งŒ ๋ณด๋ฉด ๋œ๋‹ค.

์ธ์ฝ”๋”ฉ ๊ฒฐ๊ณผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ์ง„ํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋Œ€๋กœ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

๋‚˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ง๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ๋‹ค.

from sklearn.cluster import KMeans

inertia = []

for i in range(1, 11):
    kmeans_plus = KMeans(n_clusters = i, init = 'k-means++')
    kmeans_plus.fit(ratio)
    inertia.append(kmeans_plus.inertia_)

plt.plot(range(1,11), inertia, marker = 'o')

plt.xlabel('Number of clusters')
plt.ylabel('Inertia')
plt.show()

elbow method๋กœ, ํด๋Ÿฌ์Šคํ„ฐ ๊ฐœ์ˆ˜๋Š” 3๊ฐœ๋กœ ์ •ํ•˜์˜€๋‹ค.

 

๊ธฐ์กด์— ์•Œ๊ณ  ์žˆ๋˜ ์ธ์ฝ”๋”ฉ๊ณผ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ Target ๋ณ€์ˆ˜์™€์˜ ๊ด€๊ณ„๊นŒ์ง€ ์ธ์ฝ”๋”ฉ ๊ณผ์ •์—์„œ ๋‚˜ํƒ€๋‚ด๊ณ ์ž ํ–ˆ๋‹ค๋Š” ์ ์ด๋‹ค.

'CS study/๋จธ์‹ ๋Ÿฌ๋‹' Related Articles +

๋‹ค์ค‘๊ณต์„ ์„ฑ์ด๋ž€?

ํšŒ๊ท€๋ถ„์„์„ ํ•  ๋•Œ ๋‹ค์ค‘๊ณต์„ ์„ฑ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ, ๊ณผ์—ฐ ๋‹ค์ค‘๊ณต์„ ์„ฑ์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?

๋‹ค์ค‘๊ณต์„ ์„ฑ(Multicollinearity)๋Š” ํšŒ๊ท€๋ถ„์„ ์‹œ ๋…๋ฆฝ๋ณ€์ˆ˜๋“ค ๊ฐ„์˜ ๊ฐ•ํ•œ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ๋ฅผ ์ผ์ปซ๋Š” ์šฉ์–ด๋‹ค. ๋งŒ์•ฝ ๋ณ€์ˆ˜๋“ค ๊ฐ„ ๋‹ค์ค‘๊ณต์„ ์„ฑ์ด ๋†’๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด, ์ด ๋ณ€์ˆ˜๋“ค์€ ๋”์ด์ƒ ๋…๋ฆฝ๋ณ€์ˆ˜๋ผ๊ณ  ๋ณด๊ธฐ ์–ด๋ ต๋‹ค. ํšŒ๊ท€๋ถ„์„์˜ ์ „์ œ์ธ ๋…๋ฆฝ๋ณ€์ˆ˜ X๋“ค์„ ํ†ตํ•ด Y๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค๋Š” ๊ฐ€์ •์ด ์„ฑ๋ฆฝํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋ฏ€๋กœ ๋‹ค์ค‘๊ณต์„ ์„ฑ์€ ํšŒ๊ท€๋ถ„์„์˜ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋กœ ์†๊ผฝํžŒ๋‹ค.

 

VIF

Variance Inflation Factor์˜ ์•ฝ์ž์ธ VIF๋Š” ํ•œ๊ตญ์–ด๋กœ ๋ฒˆ์—ญํ•˜๋ฉด ๋ถ„์‚ฐ ํŒฝ์ฐฝ ์ธ์ˆ˜๋‹ค. ์ด ๊ฐ’์€ ๋…๋ฆฝ๋ณ€์ˆ˜์˜ ๋‹ค์ค‘๊ณต์„ ์„ฑ์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•œ ์ง€ํ‘œ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ๊ณ„์‚ฐ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

r_i๋Š” i๋ฒˆ์งธ ๋ณ€์ˆ˜๋ฅผ ์ œ์™ธํ•œ ํšŒ๊ท€์‹์˜ R^2๊ฐ’์ด๋‹ค.

๋ณดํ†ต VIF ๊ฐ’์ด 10์„ ์ดˆ๊ณผํ•˜๋ฉด ๋‹ค์ค‘๊ณต์„ ์„ฑ์ด ์œ ์˜๋ฏธํ•˜๊ฒŒ ๋†’๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์ œ๊ฑฐํ•œ๋‹ค. ์™œ ํ•˜ํ•„ 10์ผ๊นŒ?

VIF > 10 ์‹์„ ์œ„์— ๋‚˜์˜จ ์ˆ˜์‹์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ๊ณ„์‚ฐํ•  ๊ฒฝ์šฐ, r_i > 0.9 ๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ฆ‰ i๋ฒˆ์งธ ๋ณ€์ˆ˜๊ฐ€ ์‹์—์„œ ๋น ์ ธ๋„ ๋‚˜๋จธ์ง€๊ฐ€ Y๋ฅผ 90% ์ด์ƒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ฆ‰ ์ œ๊ฑฐํ•ด์„œ ๋‹ค๋ฅธ ๊ฐ’๋“ค๋กœ ๋Œ€์ฒดํ•ด๋„ ์œ ์˜๋ฏธํ•˜๊ฒŒ ์˜ˆ์ธก์ด ๋‹ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค.

 

VIF in python

ํŒŒ์ด์ฌ์—์„œ VIF๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“ˆ์„ ์ด์šฉํ•œ๋‹ค.

from statsmodels.stats.outliers_influence import variance_inflation_factor as vif

ํŠน์ • ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์—์„œ ๋…๋ฆฝ๋ณ€์ˆ˜๋ณ„๋กœ VIF๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

vif_factors = [vif(X.values, i) for i in range(0, X.shape[1])]
vif_report = pd.DataFrame({"variable": X.columns, "VIF Factors": vif_factors})

vif_report๋Š” ๊ฐ ๋…๋ฆฝ๋ณ€์ˆ˜๋ณ„ VIF๊ฐ€ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด๋ฏ€๋กœ, ์ด๋ฅผ ํ™•์ธํ•˜๋ฉด ์–ด๋–ค ๋…๋ฆฝ๋ณ€์ˆ˜์˜ VIF๊ฐ€ ํฐ์ง€ ์ž‘์€์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๋ณด๊ณ  VIF๊ฐ€ 10์„ ์ดˆ๊ณผํ•œ๋‹ค๋ฉด ๊ฐ’์„ ์ œ๊ฑฐํ•˜๋ฉด ๋œ๋‹ค.

 

๋‹ค๋ฅธ ํšŒ๊ท€๋ถ„์„์—์„œ๋„ ๋‹ค์ค‘๊ณต์„ ์„ฑ์„ ๊ณ ๋ คํ•ด์•ผ ํ• ๊นŒ?

์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋ช…ํ™•ํ•œ ๋‹ต์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค. ์ธํ„ฐ๋„ท ์ž๋ฃŒ๋ฅผ ๋’ค์ ธ๋ด๋„ ์„ ํ˜•ํšŒ๊ท€๋ฅผ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ํšŒ๊ท€๋ถ„์„(์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€)์— ๋‹ค์ค‘๊ณต์„ ์„ฑ์„ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š”์ง€์— ๊ด€ํ•œ ๋ฌธ์ œ์— ๋ชจ๋‘ ๋‹ค๋ฅธ ๋‹ต์„ ๋‚ด๋†“์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ ‡์ง€๋งŒ ๋‹ค์ค‘๊ณต์„ ์„ฑ์˜ ๋ณธ์งˆ๊ณผ ํšŒ๊ท€๋ถ„์„์˜ ๊ฐ€์ •์„ ์ƒ๊ฐํ•ด๋ณธ๋‹ค๋ฉด, ๋‹ค์ค‘๊ณต์„ ์„ฑ์œผ๋กœ ์ธํ•ด ๋…๋ฆฝ๋ณ€์ˆ˜๋“ค ๊ฐ„์˜ ๋…๋ฆฝ์„ฑ์ด ๋ณด์žฅ๋˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ, ๋ชจ๋“  ํšŒ๊ท€๋ถ„์„์—์„œ ๋‹ค์ค‘๊ณต์„ ์„ฑ์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค.

์‚ฌ์‹ค ๋‚ด ๋ง์ด ์˜ณ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ๋…ผ๋ฌธ ๊ฐ™์€ ์ž๋ฃŒ๋ฅผ ๋” ์ฐพ์•„๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

'CS study/๋จธ์‹ ๋Ÿฌ๋‹' Related Articles +

์„ ํ˜• ํšŒ๊ท€ (Linear Regression) ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

ํšŒ๊ท€๋ž€ x๊ฐ’์— ๋Œ€์‘ํ•˜๋Š” y๊ฐ’๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ’(y hat)๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์ด๋‹ค. ์—ฌ๊ธฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์„ ํ˜• ํ•จ์ˆ˜๋ผ๋ฉด ์„ ํ˜•ํšŒ๊ท€๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์„ ํ˜•ํšŒ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๊ทธ ๋‹จ์ˆœํ•จ์— ์žˆ๋‹ค. ๊ฐ ํ”ผ์ณ์˜ ๊ณ„์ˆ˜์™€ ๋ชฉํ‘œํ•˜๋Š” ๋ณ€์ˆ˜ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋ณด๋‹ค ๋” ์ง๊ด€์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์„ ํ˜• ํšŒ๊ท€์˜ ์ข…๋ฅ˜

- ๋‹จ์ˆœ ์„ ํ˜• ํšŒ๊ท€

ํ”ผ์ณ(x)๊ฐ€ ํ•˜๋‚˜๋ฟ์ธ ๋ชจ๋ธ์ด๊ณ  ๋ชฉํ‘œ ๋ณ€์ˆ˜์™€ ํ”ผ์ณ๊ฐ€ ๊ฐ™์€ ์ขŒํ‘œํ‰๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” ์ง์„  ํ˜•ํƒœ์ด๋‹ค. ๋‹จ์ˆœ ์„ ํ˜• ํšŒ๊ท€๋Š” ์„ ํ˜• ์‚ฌ์ƒ์— ๋ถ€ํ•ฉํ•œ๋‹ค. 

 

- ๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€

ํ”ผ์ณ(x)๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๋ชจ๋ธ๋กœ ๋‹ค์ฐจ์› ๊ณต๊ฐ„์—์„œ ์กด์žฌํ•˜๋Š” ์ง์„ ์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ ํ˜• ์‚ฌ์ƒ์— ๋ถ€ํ•ฉํ•œ๋‹ค.

 

- ๋‹คํ•ญ ํšŒ๊ท€ (Polynomial)

ํ”ผ์ณ๋Š” 1๊ฐœ๋ฟ์ด์ง€๋งŒ ๋‹คํ•ญ์‹์˜ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚˜๋ฏ€๋กœ ๊ณก์„ ์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋œ๋‹ค. ๋‹คํ•ญ ํšŒ๊ท€์˜ ๊ฒฝ์šฐ ์ง€์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚  ๋•Œ๋งˆ๋‹ค ๊ธ‰๊ฒฉํžˆ ๋ณต์žกํ•ด์ง€๋ฏ€๋กœ ํšŒ๊ท€ ๋ชจ๋ธ์—์„œ ์˜ค๋ฒ„ํ”ผํŒ…(overfitting, ๊ณผ์ ํ•ฉ)์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค. 

 

๋น„์šฉํ•จ์ˆ˜

๋จธ์‹ ๋Ÿฌ๋‹์—์„œ๋Š” ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ์— ํˆฌ์ž…ํ•จ์œผ๋กœ์จ ๋ชจ๋ธ์„ ์ ํ•ฉํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ํ•™์Šต๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ์ด๋•Œ ์ œ๋Œ€๋กœ ์ ํ•ฉ์ด ๋˜๋ ค๋ฉด ๋ชจ๋ธ์˜ ์˜ˆ์ธก๊ฐ’๊ณผ ์‹ค์ œ ๊ฐ’์„ ์ค„์—ฌ์•ผ ํ•œ๋‹ค. ๋ชจ๋ธ์˜ ์˜ˆ์ธก๊ฐ’๊ณผ ์‹ค์ œ ๊ฐ’์˜ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋น„์šฉ(cost) ํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋น„์šฉํ•จ์ˆ˜๋Š” ๋ชจ๋ธ์˜ ํŠน์„ฑ์— ๋งž๊ฒŒ ์˜ค์ฐจ๋ฅผ ์ธก์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, ๋ณดํ†ต ๋น„์šฉํ•จ์ˆ˜ ๊ฐ’์ด ์ž‘์„์ˆ˜๋ก ์˜ค์ฐจ๊ฐ€ ์ž‘์œผ๋ฉฐ ๋ชจ๋ธ์ด ์ž˜ ํ•™์Šต๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋น„์šฉํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‹จ์ˆœ ์„ ํ˜• ํšŒ๊ท€ ๊ตฌํ˜„

sklearn (์‹ธ์ดํ‚ท๋Ÿฐ) ์„ ์ด์šฉํ•œ๋‹ค. ๋ชจ๋ธ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import r2_score, mean_squared_error

ํ•™์Šต, ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ์•ผ ํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ๋‹ค.

X_train, X_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 156)

x, y๋Š” ๋ฐ์ดํ„ฐ์—์„œ ๋ถˆ๋Ÿฌ์˜จ ๊ฐ๊ฐ์˜ x, y ๊ฐ’๋“ค์ด๋‹ค.

test_size๋Š” ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ๋กœ ๋ถ„๋ฆฌํ•  ๋ฐ์ดํ„ฐ์˜ ๋น„์œจ์„ ์ง€์ •ํ•ด์ค€๋‹ค. random_state๋Š” ์•„๋ฌด ์ˆซ์ž๋‚˜ ์ ๋Š”๋‹ค.

๋ฐ์ดํ„ฐ์…‹๋“ค๋กœ ํ•™์Šต์„ ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

lr = LinearRegression(fit_intercept = True)
lr.fit(X_train, y_train)

fit_intercept๋ฅผ True๋กœ ์„ค์ •ํ•˜์—ฌ ๋‹จ์ˆœ ์„ ํ˜• ํšŒ๊ท€ ๋ชจ๋ธ์— b0๊ฐ’๋„ ํฌํ•จ์‹œํ‚จ๋‹ค.

์ดํ›„ lr.fit์„ ํ†ตํ•ด ํ•™์Šต์‹œํ‚จ๋‹ค.

lr.coef_ # b๊ฐ’๋“ค์˜ array
lr.coef_[0] # b1 ๊ฐ’์— ์ ‘๊ทผ
lr.intercept_ # b0 ๊ฐ’ (์ ˆํŽธ)์— ์ ‘๊ทผ

๋ชจ๋ธ์—์„œ coef_๋ฅผ ์ด์šฉํ•˜๋ฉด b๊ฐ’๋“ค์˜ array๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ , index๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ฐ๊ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, intercept_๋Š” ์ ˆํŽธ, ์ฆ‰ b0 ๊ฐ’์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋‹ค.

y_train_pred = lr.predict(X_train)
y_test_pred = lr.predict(X_test)

train_r2 = r2_score(y_train, y_train_pred)
test_r2 = r2_score(y_test, y_test_pred)

lr.score(X_test, y_test)

predict ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•œ๋‹ค.

r2_score์•ˆ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์‹ค์ œ y๊ฐ’๊ณผ ๋ชจ๋ธ์ด ๋„์ถœํ•œ y hat ๊ฐ’์„ ๋ฐ›๋Š”๋‹ค. r2_score๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์ด ํด์ˆ˜๋ก ์ž˜ ์˜ˆ์ธกํ•˜์˜€๋‹ค๋Š” ๋œป์ด๋‹ค.

lr.score์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ๋„ test ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‹คํ•ญ ํšŒ๊ท€ ๊ตฌํ˜„ - 2nd order Polynomial Regression

quad = PolynomialFeatures(degree = 2)
X_quad = quad.fit_transform(x)

quadratic regression์€ 2์ฐจ ๋‹คํ•ญ ํšŒ๊ท€๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

PolynomialFeatures๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ degree๋กœ ๋ฐ›๋Š”๋ฐ, ์—ฌ๊ธฐ์— ๋„ฃ์–ด์ฃผ๋Š” ์ˆซ์ž์— ๋”ฐ๋ผ์„œ ๋‹คํ•ญํšŒ๊ท€์˜ ์ฐจ์ˆ˜๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค.

X_train, X_test, y_train, y_test = train_test_split(X_quad, y, random_state = 156)

plr = LinearRegression()
plr.fit(X_train, y_train)

y_train_pred = plr.predict(X_train)
y_test_pred = plr.predict(X_test)

plr.score(X_test, y_test)

train_test_split์„ ํ†ตํ•ด ํ•™์Šต, ๊ฒ€์ฆ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ์— ํ•™์Šต์‹œํ‚จ๋‹ค. ๋‹ค์Œ์œผ๋กœ ๋ชจ๋ธ์ด ์–ผ๋งˆ๋‚˜ ์ ํ•ฉํ•œ์ง€ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ 3์ฐจ, 4์ฐจ ๋“ฑ์˜ ๋‹คํ•ญํšŒ๊ท€๋ฅผ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์œ„์—์„œ degree๊ฐ’๋งŒ ๋ณ€๊ฒฝ์‹œํ‚ค๊ณ  ๋‚˜๋จธ์ง€ ๊ณผ์ •์€ ๋˜‘๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.

'CS study/๋จธ์‹ ๋Ÿฌ๋‹' Related Articles +
1