๐Ÿ“’ Spark(22) - ML(4)

Kimdongkiยท2024๋…„ 7์›” 11์ผ

Spark

๋ชฉ๋ก ๋ณด๊ธฐ
22/22

๐Ÿ“Œ Spark ML ๋ชจ๋ธ ํŠœ๋‹

Spark ML Tunning

  • ์ตœ์ ์˜ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ ํƒ
  • ์ตœ์ ์˜ ๋ชจ๋ธ ํ˜น์€ ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์•„์ฃผ ์ค‘์š”ํ•˜๋‹ค.
  • ํ•˜๋‚˜์”ฉ ํ…Œ์ŠคํŠธํ•ด๋ณด๋Š” ๊ฒƒ vs. ๋‹ค์ˆ˜๋ฅผ ๋™์‹œ์— ํ…Œ์ŠคํŠธ ํ•˜๋Š” ๊ฒƒ
  • ๋ชจ๋ธ ์„ ํƒ์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์€ "ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•"์ด๋‹ค.
    -> ๊ต์ฐจ ๊ฒ€์ฆ(Cross Validation)๊ณผ ํ™€๋“œ ์•„์›ƒ(Train-Validation Split) ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•œ๋‹ค.
  • ๋ณดํ†ต ML Pipline๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค.

Spark ML Model Test

  • Method
    • Cross Validation : Cross Validator
    • Train-Validation Split

Tarin-Validation Split

  1. Train data Set์„ train&test๋กœ ๋ถ„๋ฆฌ

  2. train data๋กœ Model Building

  3. test data๋กœ ์˜ˆ์ธก๊ฐ’ ์ˆ˜์ง‘

  1. ์˜ˆ์ธก๊ฐ’๊ณผ test์šฉ lable์„ ๋น„๊ต

Spark ML Model Test

  • Cross Validation(๊ต์ฐจ ๋ถ„์„ ํ…Œ์ŠคํŠธ)

  • K-Fold Test๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์ฐธ๊ณ 

  • ํŠธ๋ ˆ์ด๋‹ ์…‹์„ K๊ฐœ์˜ ์„œ๋ธŒ์…‹์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ด K๋ฒˆ์˜ ํ›ˆ๋ จ์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

    • i๋ฒˆ์งธ ํ›ˆ๋ ฅ์„ ํ•  ๋•Œ๋Š” ์•„๋ž˜๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.
      • i๋ฒˆ์งธ ์„œ๋ธŒ์…‹์„ ๋นผ๊ณ  ํ›ˆ๋ จ์„ ํ•˜์—ฌ ๋ชจ๋ธ์„ ๋นŒ๋”ฉํ•œ๋‹ค.
      • ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋ธ์˜ ํ…Œ์ŠคํŠธ๋Š” i๋ฒˆ์งธ ์„œ๋ธŒ์…‹์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • Tarin-Validation Split๋ณด๋‹ค ํ›จ์”ฌ ๋” ์•ˆ์ •์ ์ด๋‹ค.
    -> ์˜ค๋ฒ„ํ”ผํŒ… ๋ฌธ์ œ๊ฐ€ ๊ฐ์†Œํ•œ๋‹ค.

Spark ML Model Tuning

  • TrainValidationSplit : ํ™€๋“œ์•„์›ƒ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • Cross Validation : ๊ต์ฐจ๋ถ„์„ (K-Fold)๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • ์•„๋ž˜์™€ ๊ฐ™์€ ์ž…๋ ฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ€์žฅ ์ข‹์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ์•„์ค€๋‹ค.

    • Estimator (ML Model ํ˜น์€ ML Pipeline)
    • Evaluator : ML Model์˜ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ
    • Parameter : ํ›ˆ๋ จ ๋ฐ˜๋ณต ํšŸ์ˆ˜ ๋“ฑ์˜ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ
      -> ParamGridBuilder๋ฅผ ์ด์šฉํ•˜์—ฌ ParamGrid ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ์ตœ์ข…์ ์œผ๋กœ ๊ฐ€์žฅ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€ ๋ชจ๋ธ์„ ๋ฆฌํ„ดํ•œ๋‹ค.

  • ๋ชจ๋ธ ์„ ํƒ์‹œ ์ž…๋ ฅ

    • Estimator
      -> ML ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๋ชจ๋ธ ๋นŒ๋”ฉ Pipeline
    • Evaluator: ML Model์„ฑ๋Šฅ ์ธก์ •์— ์‚ฌ์šฉ๋˜๋Š” ์ง€ํ‘œ -> metrics
    • ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋งต
      • ํŒŒ๋ผ๋ฏธํ„ฐ ๊ทธ๋ฆฌ๋“œ(ParamGrid)๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•˜๋Š”๋ฐ ๋ชจ๋ธ ํ…Œ์ŠคํŠธ์‹œ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š”(๊ฐ€๋Šฅํ•œ ํ•™์Šต ๊ด€๋ จ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค) ํŠธ๋ฆฌ ๊ด€๋ จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์ค‘์š”ํ•˜๋‹ค.
      • ํ…Œ์ŠคํŠธ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์˜ˆ๋กœ๋Š” ํŠธ๋ฆฌ์˜ ์ตœ๋Œ€ ๊นŠ์ด, ํ›ˆ๋ จ ํšŸ์ˆ˜๋“ฑ์ด ์žˆ๋‹ค.

Spark ML Model ์„ฑ๋Šฅ ์ธก์ • - Evaluator

  • evaluator ํ•จ์ˆ˜๊ฐ€ ์ œ๊ณต๋œ๋‹ค.
    -> ์ธ์ž๋กœ TestSet์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋“ค์–ด์žˆ๋Š” DataFrame๊ณผ Parameter๋ฅผ ์ œ๊ณตํ•ด์•ผํ•œ๋‹ค.

  • ML ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ Evaluator๊ฐ€ ์ œ๊ณต๋œ๋‹ค.

    • RegressionEvaluator
    • BinaryClassificationEvaluator
      -> AUC(Area Under the Curve)๊ฐ€ ์„ฑ๋Šฅ์ง€ํ‘œ๊ฐ€ ๋œ๋‹ค.
    • MulticlassClassificationEvaluator
    • MultilabelClassificationEvaluator
    • RankingEvaluator
  • Prediction ์ปฌ๋Ÿผ๊ณผ Label์ปฌ๋Ÿผ์ด ๋“ค์–ด์žˆ๋Š” DataFrame
    -> Logistic Regression์˜ ๊ฒฝ์šฐ Probability ์ปฌ๋Ÿผ๋„ ๋“ค์–ด์˜จ๋‹ค.

  • ๋ณดํ†ต ์ด DataFrame์€ ML Model์˜ Transformํ•จ์ˆ˜๊ฐ€ ๋ฆฌํ„ดํ•ด์ค€ ๊ฐ’์ด ๋œ๋‹ค.

Spark ML Model Building ์ „์ฒด ํ”„๋กœ์„ธ์Šค

0๊ฐœ์˜ ๋Œ“๊ธ€