• [ML] ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ๋จธ์‹ ๋Ÿฌ๋‹+ ๋”ฅ๋Ÿฌ๋‹ Ch02 ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ

    2024. 3. 17.

    by. @leeeun

     

    Chapter02 ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ

     

    02-1 ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ

     

    ์ง€๋„ ํ•™์Šต๊ณผ ๋น„์ง€๋„ ํ•™์Šต

    ์ง€๋„ ํ•™์Šต

    • ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์™€ ์ •๋‹ต์ด ํ•„์š”
      • ๋ฐ์ดํ„ฐ - ์ž…๋ ฅ, ์ •๋‹ต - ํƒ€๊ฒŸ. ์ž…๋ ฅ + ํƒ€๊ฒŸ = ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ
    • ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ๋œ ๊ธธ์ด, ๋ฌด๊ฒŒ → ํŠน์„ฑ
    • ์ •๋‹ต์ด ์กด์žฌํ•˜๋ฏ€๋กœ ์ •๋‹ต์„ ๋งžํžˆ๋Š” ๊ฒƒ์„ ํ•™์Šต ex) KNN-์•Œ๊ณ ๋ฆฌ์ฆ˜

    ๋น„์ง€๋„ ํ•™์Šต

    • ํƒ€๊ฒŸ ์—†์ด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉ → ์ •๋‹ต์„ ๋งž์ถ”์ง€ x

    ๊ฐ•ํ™” ํ•™์Šต

    • ํƒ€๊ฒŸ์ด ์•„๋‹Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ–‰๋™ํ•œ ๊ฒฐ๊ณผ๋กœ ์–ป์€ ๋ณด์ƒ์„ ํ†ตํ•ด ํ•™์Šต

     

    ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ

    • ํ…Œ์ŠคํŠธ ์„ธํŠธ: ํ‰๊ฐ€์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ
      • ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ 20~30% ์ •๋„
    • ํ›ˆ๋ จ ์„ธํŠธ: ํ›ˆ๋ จ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ
      • ํด์ˆ˜๋ก ์ข‹์Œ
    • ์ ์ ˆํ•œ ์„ฑ๋Šฅ ํ‰๊ฐ€๋Š” ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ๊ฐ€ ๋‹ฌ๋ผ์•ผ ํ•จ.
      • (Ch1์˜ ๊ฒฝ์šฐ ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ๊ฐ€ ๋™์ผ)
    • ์ƒ˜ํ”Œ : ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ

     

    ์ƒ˜ํ”Œ๋ง ํŽธํ–ฅ

    • ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ์— ์ƒ˜ํ”Œ์ด ๊ณจ๊ณ ๋ฃจ ์„ž์—ฌ ์žˆ์ง€ ์•Š์„ ๋•Œ
      • ex) ๋„๋ฏธ์™€ ๋น™์–ด๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ฌ ๋•Œ ๋„๋ฏธ ๋ฐ์ดํ„ฐ๋กœ๋งŒ ํ›ˆ๋ จ
    • ์ด๋Ÿฌํ•œ ์„ž๋Š” ํ–‰์œ„๋ฅผ ์ฒ˜๋ฆฌ ⇒ ๋„˜ํŒŒ์ด

     

    ๋„˜ํŒŒ์ด

    • ํŒŒ์ด์ฌ์˜ ๋ฐฐ์—ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ๊ณ ์ฐจ์› ๋ฐฐ์—ด์„ ์†์‰ฝ๊ฒŒ ์กฐ์ž‘ ๊ฐ€๋Šฅ
    • ์‹œ์ž‘์ ์ด ์™ผ์ชฝ ์œ„์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘
    • arr() : ๋ฆฌ์ŠคํŠธ → ๋ฐฐ์—ด
    • array.shape : ๋ฐฐ์—ด์˜ ํฌ๊ธฐ (์ƒ˜ํ”Œ ์ˆ˜, ํŠน์„ฑ ์ˆ˜) ์ถœ๋ ฅ

    • input_arr์™€ target_arr์—์„œ ๊ฐ™์€ ์œ„์น˜๋Š” ํ•จ๊ป˜ ์„ ํƒ๋˜์–ด์•ผ ํ•จ ⇒ ์ธ๋ฑ์Šค
    • seed() : ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ •์ˆ˜ ์ดˆ๊นƒ๊ฐ’ ์ง€์ •
    • arrange() : ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์˜ ๋ฐฐ์—ด ์ƒ์„ฑ
    • shuffle() : ๋ฐฐ์—ด ๋ฌด์ž‘์œ„ ์…”ํ”Œ
    • ๋ฐฐ์—ด ์ธ๋ฑ์‹ฑ ๊ธฐ๋Šฅ ์ œ๊ณต

     

    ๋‘ ๋ฒˆ์งธ ๋จธ์‹ ๋Ÿฌ๋‹ ํ”„๋กœ๊ทธ๋žจ

    ์ œ๋Œ€๋กœ ๋งŒ๋“  ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ๋กœ KNN ๋ชจ๋ธ ํ›ˆ๋ จ

    kn=kn.fit(train_input, train_target)
    kn.score(test_input,test_target)
    kn.predict(test_input)
    test_target # ๋„˜ํŒŒ์ด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜
    

    ํ›ˆ๋ จ ๋ชจ๋ธ ํ‰๊ฐ€

    • ํ›ˆ๋ จ์— ์ฐธ์—ฌํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋กœ ๋ชจ๋ธ์„ ํ‰๊ฐ€ํ•ด์•ผ ํ•จ.

     

    02-2 ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

    • ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ (data processing) : ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์— ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ์ž…ํ•˜๊ธฐ ์ „ ๊ฐ€๊ณตํ•˜๋Š” ๋‹จ๊ณ„. ํŠน์„ฑ๊ฐ’์„ ์ผ์ •ํ•œ ๊ธฐ์ค€์œผ๋กœ ๋งž์ถ”์–ด ์ฃผ๋Š” ์ž‘์—…
    • column_stack() : ์ „๋‹ฌ๋ฐ›์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ผ๋ ฌ๋กœ ์„ธ์šด ๋‹ค์Œ ์ฐจ๋ก€๋Œ€๋กœ ๋‚˜๋ž€ํžˆ ์—ฐ๊ฒฐ
    • np.ones() / np.zeros() : ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ 1๊ณผ 0์„ ์ฑ„์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑ
    • np.concatenate() : ๋ฐฐ์—ด์„ ์—ฐ๊ฒฐ

     

    ์‚ฌ์ดํ‚ท๋Ÿฐ์œผ๋กœ ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ ๋‚˜๋ˆ„๊ธฐ

    • tran_test_split() : ์…”ํ”Œ & ๋น„์œจ์— ๋งž๊ฒŒ ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ ๊ตฌ๋ถ„
    • stratify ๋งค๊ฐœ๋ณ€์ˆ˜ : ํƒ€๊นƒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ํด๋ž˜์Šค ๋น„์œจ์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ
    • xlim() / ylim() : matplotlib์—์„œ x์ถ• ๋ฒ”์œ„, y์ถ• ๋ฒ”์œ„ ์ง€์ •
    • ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ: ์ƒ˜ํ”Œ ๊ฐ„ ๊ฑฐ๋ฆฌ์˜ ์˜ํ–ฅ์„ ๋งŽ์ด ๋ฐ›๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ํŠน์„ฑ๊ฐ’์„ ์ผ์ •ํ•œ ๊ธฐ์ค€์œผ๋กœ ๋งž์ถ”์–ด ์ฃผ์–ด์•ผ ํ•จ.
    • (๋ชจ๋“  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜์ธ ๊ฒƒ์€ ์•„๋‹˜)
    • ํ‘œ์ค€ ์ ์ˆ˜ : ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๋Š” ์ „์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•
      • ๊ฐ ํŠน์„ฑ๊ฐ’์ด 0์—์„œ ํ‘œ์ค€ ํŽธ์ฐจ์˜ ๋ช‡ ๋ฐฐ๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„.
    • np.mean() : ํ‰๊ท  ๊ณ„์‚ฐ
    • np.std() : ํ‘œ์ค€ํŽธ์ฐจ ๊ณ„์‚ฐ

    • ๋ธŒ๋กœ๋“œ ์บ์ŠคํŒ… : ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฐฐ์—ด ๊ฐ„์˜ ์—ฐ์‚ฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ 

     

    ๋Œ“๊ธ€