๐Ÿ’ฟ Data/๋ถ€ํŠธ์บ ํ”„

[TIL]60-2. ๋ถ€ํ˜ธํ™”/๋ณตํ˜ธํ™”

Jayden1116 2022. 2. 9. 20:49

๋งŒ์•ฝ ํŒŒ์ด์ฌ์œผ๋กœ ๊ตฌํ˜„ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ํƒ€์ธ์—๊ฒŒ ์ „๋‹ฌํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

ํŒŒ์ด์ฌ์˜ ๋ชจ๋“  ๊ฒƒ์€ ๊ฐ์ฒด

๋ถ€ํ˜ธํ™”/๋ณตํ˜ธํ™”

๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹

  1. ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹
    • ํŒŒ์ด์ฌ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์—์„œ ํ‘œํ˜„๋˜๋Š” ๋ฐฉ์‹
    • ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ์˜ ์ž‘๋™์ด ํŽธํ•˜๋ฏ€๋กœ CPU๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  2. ๋ฐ”์ดํŠธ์—ด ๋ฐฉ์‹
    • ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ์— ์“ฐ๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ์—์„œ ์ „์†ก๋˜๊ธฐ ์œ„ํ•ด ํ‘œํ˜„๋˜๋Š” ๋ฐฉ์‹


  • ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹ -> ๋ฐ”์ดํŠธ์—ด ๋ฐฉ์‹ : ๋ถ€ํ˜ธํ™”/์ง๋ ฌํ™”/์ธ์ฝ”๋”ฉ/๋งˆ์ƒฌ๋ง ๋“ฑ
  • ๋ฐ”์ดํŠธ์—ด ๋ฐฉ์‹ -> ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹ : ๋ณตํ˜ธํ™”(์—ญ๋ถ€ํ˜ธํ™”)/์—ญ์ง๋ ฌํ™”/๋””์ฝ”๋”ฉ/์–ธ๋งˆ์ƒฌ๋ง ๋“ฑ

[๋ถ€ํ˜ธํ™”/๋ณตํ˜ธํ™”] python์œผ๋กœ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๊ตฌํ˜„ ํ›„ ๋ถ€ํ˜ธํ™”/๋ณตํ˜ธํ™”

์˜ˆ์‹œ) ๋ถ€ํ˜ธํ™”(ํ”ผํด๋ง)

import pandas as pd
from sklearn.linear_model import LinearRegression

model = LinearRegression()

# df๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ฑฐ๊ธฐ์„œ train set์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •

model.fit(X_train, y_train)

y_pred = model.predict(X_test)

print(y_pred)

# ๋ถ€ํ˜ธํ™”ํ•˜๋Š” ๊ณผ์ •

import pickle # ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

with open('model.pkl', 'wb') as pickle_file: # ๋ฐ”์ดํŠธ์—ด๋กœ write ํ•˜๊ธฐ ๋•Œ๋ฌธ์— wb ์ž…๋‹ˆ๋‹ค.
    pickle.dump(model, pickle_file) # ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— 'model.pkl'์ด๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ๊น๋‹ˆ๋‹ค.

์˜ˆ์‹œ) ๋ณตํ˜ธํ™”(์—ญํ”ผํด๋ง)

import pickle

model = None

with open('model.pkl', 'rb') as pickle_file: # ๋ฐ”์ดํŠธ์—ด๋กœ read ํ•˜๊ธฐ ๋•Œ๋ฌธ์— rb ์ž…๋‹ˆ๋‹ค.
    model = pickle.load(pickle_file)

y_pred = model.predict(X_test)

print(y_pred) # ์œ„์˜ ๋ชจ๋ธ ํ•™์Šต์‹œํ‚ค๋Š” ์ฝ”๋“œ๊ฐ€ ์—†์–ด๋„ ๋ชจ๋ธ๋งŒ ๊ฐ€์ ธ์™€์„œ ์˜ˆ์ธก๊ฐ’์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

[๋ถ€ํ˜ธํ™”/๋ณตํ˜ธํ™”] JSON ๋ฐ์ดํ„ฐ๋กœ ๋ถ€ํ˜ธํ™”/๋ณตํ˜ธํ™”

  • ์›น์—์„œ ๋ฐ›์€ JSON ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ํ™•์ธํ•  ๋•Œ
  • ๋”•์…”๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค API๋กœ ์ „๋‹ฌํ•ด์•ผํ•  ๋•Œ

์˜ˆ์‹œ) ๋ถ€ํ˜ธํ™”

data = {
    "first": {
        "name": "jayden",
        "album": "HELLO WORLD"
    }
}

# json์œผ๋กœ ๋ถ€ํ˜ธํ™”ํ•œ ๋’ค, ํŒŒ์ผ์— ์“ธ ๋•Œ

import json

with open('json_file.json','w') as json_file: # ๋ฐ”์ดํŠธ์—ด์ด ์•„๋‹Œ ๊ทธ๋ƒฅ str์œผ๋กœ write ํ•˜๊ธฐ ๋•Œ๋ฌธ์— w ์ž…๋‹ˆ๋‹ค.
    json.dump(data,json_file)

์˜ˆ์‹œ) ๋ณตํ˜ธํ™”

import json

str_1 = None

with open('json_file.json', 'r') as json_file: # ๋ฐ”์ดํŠธ์—ด์ด ์•„๋‹Œ ๊ทธ๋ƒฅ str์œผ๋กœ read ํ•˜๊ธฐ ๋•Œ๋ฌธ์— r ์ž…๋‹ˆ๋‹ค.
    str_1 = json.load(json_file)

print(str_1) # ์œ„์˜ data๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด A๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ a๋กœ ํ‘œํ˜„ํ–ˆ๋‹ค๊ฐ€ ์ด ์•”ํ˜ธ๋ฅผ ๋‹ค์‹œ ํ•ด๋…ํ•ด์„œ A๋กœ ํ’€์–ด๋‚ด๋Š” ๋ฐฉ์‹
์ด ๋•Œ, a๋กœ ๋ฐ”๊พธ๋ฉด ์ „๋‹ฌ์— ์žˆ์–ด ํšจ์œจ์ ์ด๋ฏ€๋กœ ์ด๋Ÿฐ ๋ฐฉ์‹์„ ํ–‰ํ•˜๋Š” ๊ฒƒ