๋ฌธ์
Automl์ R2๊ฐ ์์ ์ธ ๋ชจ๋ธ์ ์์ฑํฉ๋๋ค.
์ฌํ
์ฌ๊ธฐ์ ๋ฐ์ดํฐ ์ธํธ๊ฐ
import evalml
import pandas as pd
import numpy as np
df = pd.read_csv('stones_encoded_small.csv')
y = df.pop('total_sales_price')
automl = evalml.automl.AutoMLSearch(problem_type='regression')
automl.search(df, y)
null / ๋จ์ผ ๊ฐ ์ด๋ก ์ธํด ๋ฐ์ดํฐ ๊ฒ์ฌ๊ฐ ์คํจํฉ๋๋ค. data_checks='disabled'
๋นํ์ฑํ ํ ์ ์์ต๋๋ค. ๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๊ณ์ํ๋ ค๋ฉด :
cols_to_drop = ['culet_condition', 'fancy_color_dominant_color', 'fancy_color_intensity', 'fancy_color_overtone', 'fancy_color_secondary_color', 'fluor_color', 'image_file_url', 'diamond_id', 'currency_code', 'currency_symbol', 'fancy_color_dominant_color', 'fancy_color_intensity', 'fancy_color_overtone', 'fancy_color_secondary_color', 'has_sarineloupe']
df.drop(columns=cols_to_drop, inplace=True)
automl = evalml.automl.AutoMLSearch(problem_type='regression')
automl.search(df, y)
๊ฒฐ๊ณผ๋ ์ด๋ ์ชฝ์ด๋ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ๋ชจ๋ ๋ชจ๋ธ์ ๋ํด ์์ R2 ๊ฐ, ์ฆ ๋ชจ๋ธ์ด ์๋ฏธ์๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑ ํ ์ ์์ต๋๋ค.
๋ฉํธ๋ฆญ์ MSE ๋ฐ MAE๋ก ์ ํํ๋ฉด ๋น์ทํ๊ฒ ๋ถ๋ ๋ชจ๋ธ์ด ์์ฑ๋ฉ๋๋ค.
ํ ๋ก
๋ด ์ฒซ ๋ฒ์งธ ์์ฌ์ ๊ธฐ๋ฅ์ด ์ฌ๋ฐ๋ฅธ ์ ํ์ ์ป์ง ๋ชปํ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค. pandas๊ฐ ์ถ๋ก ํ dtypes๋ฅผ ๋ณด๋ฉด ๋ง์ ๊ฒ์ด float64
๋ก ์ค์ ๋์ด ์์ง๋ง ๊ณ ์ ํ ๊ฐ์ด ๋ช ๊ฐ๋ง ์์ต๋๋ค. ์ฆ, ๋ฒ์ฃผ ํ์ผ๋ก ์ค์ ํด์ผํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์๋ํ์ง๋ง ๋ชจ๋ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ฒฝํ์ง ์๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ์ด์ผ๊ธฐ์ ๋ ๋ง์ ๊ฒ์ด ์์ต๋๋ค.
์๋ ํ์ธ์ ํ,
๋๋ ์ด๊ฒ์ด ๋์ ๋ณ์๋ก ์ ๋ ฌ ๋ ์ ๋ ฅ ๋ฐ์ดํฐ ์ธํธ์ 3 ์ค ๊ต์ฐจ ๊ฒ์ฆ์ ์ฌ์ฉ๋๋ ์ํ๋ง ๋ฐฉ๋ฒ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ฐ์ดํฐ ์ธํธ๋ ์ต์ ๊ฐ๊ฒฉ์์ ์ต๊ณ ๊ฐ๊ฒฉ ์์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค. ๊ต์ฐจ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ๋ ์ฝ๋๋ฅผ ์์๋๋ก ๋ถํ ํ๊ณ ์๋ค๊ณ ์๊ฐํ๋ฏ๋ก ๋ถํ ์ด ๋์ ๋ณ์์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ์ฆ, R2 ๊ฐ์ด ํ๋ จ ๋ฐ์ดํฐ์ ํฌํจ๋์ง ์์ ๋์ ๋ณ์ ๊ฐ์ ๋ํด ํ ์คํธ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๋ฎ์ต๋๋ค. ์ด ๋์์ ์ ์ฒด ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๊ฒ์์ ์ ๊ณตํ๊ธฐ ์ ์ ์ ํ์ ์ํํ์ฌ ํด๊ฒฐ๋ฉ๋๋ค.
import evalml
import pandas as pd
import numpy as np
from evalml.data_checks import EmptyDataChecks
df = pd.read_csv('stones_encoded_small.csv')
# shuffles data
df = df.sample(frac=1)
y = df.pop('total_sales_price')
automl = evalml.automl.AutoMLSearch(problem_type='regression')
automl.search(df, y, data_checks=EmptyDataChecks()))
@SydneyAyx @gsheni ๊ฐ์ฌํฉ๋๋ค! ํ๋ฅญํ ํ์ ์์ , ์ฒ์ฌ :)
๋ค, ํ์ธํ์ต๋๋ค. automl์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ๋ถํ ๊ธฐ๊ฐ ํ์ฌ shuffle=True
์ค์ ๋์ง ์์ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.
@SydneyAyx @gsheni ํ ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ @gsheni ๊ฐ ์์ ํ์๋๋๋ก
import evalml
import pandas as pd
import numpy as np
import sklearn.model_selection
df = pd.read_csv('stones_encoded_small.csv')
y = df.pop('total_sales_price')
data_splitter = sklearn.model_selection.KFold(n_splits=3, random_state=0, shuffle=True)
automl = evalml.automl.AutoMLSearch(problem_type='regression', data_split=data_splitter)
automl.search(df, y, data_checks='disabled')
evalml ์์ ์ผ๋ก PR์ ์ป์ ๊ฒ์ ๋๋ค.