Machine Learning/Case Study ๐ฉ๐ป๐ป26 [๐ฆ ๊ฒ ๋์ด ์์ธก(4)] Baseline Modeling(์ฌ๋ฌ ๋ชจ๋ธ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉ, ๋น๊ต) ๐ง๐ป ์ฝ๋ ์ข ํฉ (3)๊น์ง ์งํํ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉํ๋ฉด ๋ชจ๋ธ๋ง ๋ฒ ์ด์ค ๋ผ์ธ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ด๋ฒ ์๊ฐ์๋ 3๊ฐ์ ๋ชจ๋ธ ๋ณ๋ก K-fold ๊ต์ฐจ ๊ฒ์ฆ์ ์ํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ ์(MAE)์ ํ๊ท ๊ฐ์ ์๊ฐํํ์ฌ ๋น๊ตํด๋ณธ๋ค. ์ด๋ ๊ฒ 1์ฐจ ๋ฒ ์ด์ค๋ผ์ธ ๋ชจ๋ธ๋ง ์ฝ๋๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ค! 1. ๋ผ๋ฒจ ์ธ์ฝ๋ฉ # ๋ผ๋ฒจ ์ธ์ฝ๋ฉ(sex) from sklearn.preprocessing import LabelEncoder le = LabelEncoder() train['generated'] = 1 original['generated'] = 0 test['generated'] = 1 train.drop(columns = 'id', axis = 1, inplace = True) train = pd.concat([train, origina.. 2023. 9. 25. [๐ฆ ๊ฒ ๋์ด ์์ธก(3)] Baseline Modeling(Hist Gradient Boosting) ------>> ๊ธฐ๋ณธ์ ์ธ ์ ์ฒ๋ฆฌ ์ฝ๋๋ ์ ํฌ์คํ ๊ณผ ๋์ผํ๊ฒ ์ด์ด์ง๋๋ค. ๐ Hist Gradient Boosting ์ด๋? ์ฌ์ดํท๋ฐ์ Gradient Boosting ์ ๋ณํ ์ค ํ๋๋ก, ์ผ๋ฐ Gradient Boosting(ํ๊ท/๋ถ๋ฅ)๊ณผ ๋น๊ตํ์ฌ ํจ์จ์ ์ธ ๊ตฌํ์ ์ ๊ณต ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์ ์ ํฉํ๋ฉฐ, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ Gradient Boosting๋ณด๋ค ๋น ๋ฅธ ํ์ต๊ณผ ์์ธก์ ์ ๊ณต ์ฅ์ ํ์คํ ๊ทธ๋จ ๊ธฐ๋ฐ ๋ถํ : ๋ฐ์ดํฐ๋ฅผ ํ์คํ ๊ทธ๋จ ๊ธฐ๋ฐ ๋ถํ ์ ์ฌ์ฉํ์ฌ, ์ฐ์ํ ํน์ฑ์ ๋น ๋ฅด๊ฒ ์ด์ฐํํ๊ณ ์ด์ฐ์ ์ธ ๊ฐ์ ์ฌ์ฉํ์ฌ ๋ถํ ์ ์ํํ์ฌ ํ์ต๊ณผ ์์ธก์ ๊ฐ์ํ ํจ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ : ํ์คํ ๊ทธ๋จ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ถ/์ ์ฅํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ๋์ด ๋ฎ์์ง ๋ณ๋ ฌ ์ฒ๋ฆฌ : ๋ฉํฐ์ฝ์ด CPU์์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅ ๋น ๋ฅธ ํ์ต ๋ฐ ์์ธก : ํจ์จ์ ์ธ.. 2023. 9. 24. [๐ฆ ๊ฒ ๋์ด ์์ธก(2)] Baseline Modeling(Gradient Boosting) ๐ Gradient Boosting ์ด๋? ๋จธ์ ๋ฌ๋์์ ์ฌ์ฉ๋๋ ๊ฐ๋ ฅํ ์์๋ธ ํ์ต ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก, ํ๊ท & ๋ถ๋ฅ ๋ฌธ์ ๋ชจ๋ ์ ์ฉ ๊ฐ๋ฅํ๋ฉฐ ๋์ ์์ธก ์ฑ๋ฅ์ ์ ๊ณต ์์๋ธ ํ์ต : ์ฌ๋ฌ ๊ฐ์ ์ฝํ ๋ชจ๋ธ์ ๊ฒฐํฉํ์ฌ ํ๋์ ๊ฐ๋ ฅํ ๋ชจ๋ธ์ ๋ง๋๋ ๊ธฐ๋ฒ ๋ถ์คํ : ๋ถ์คํ (์ด์ ๋ชจ๋ธ์ ์ค๋ฅ๋ฅผ ๋ณด์ํ๋ ์๋ก์ด ๋ชจ๋ธ์ ํ์ตํ๋ ๋ฐฉ์์ผ๋ก ์๋) ๊ธฐ๋ฒ ์ค ํ๋๋ก, ์์ฐจ์ ์ผ๋ก ๋ชจ๋ธ์ ์ถ๊ฐํ๋ฉฐ ์ด์ ๋ชจ๋ธ์ด ์๋ชป ์์ธกํ ์ํ์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ ๋ชจ๋ธ์ ์ค๋ฅ๋ฅผ ๋ณด์ํจ ๊ทธ๋ผ๋์ธํธ : ๊ทธ๋ผ๋์ธํธ(๊ธฐ์ธ๊ธฐ)๋ฅผ ํ์ฉํ์ฌ ๋ชจ๋ธ ํ์ต. ์์ค ํจ์(MSE, MAE ๋ฑ)์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ณ์ฐํ์ฌ ์ด์ ๋ชจ๋ธ์ด ์์ธก์ ์๋ชปํ ์ํ์ ๋ ํฐ ๊ฐ์ค์น๋ฅผ ์ฃผ๊ณ , ์ด๋ฅผ ๋ชจ์ ํ๋ ์๋ก์ด ๋ชจ๋ธ์ ํ์ตํจ ๋ชจ๋ธ์ ๊ฒฐํฉ : ์ฝํ ํ์ต์(๋ชจ๋ธ)์ ์์ธก์ ๊ฐ์ค์น๋ฅผ ๋ถ.. 2023. 9. 24. [๐ฆ ๊ฒ ๋์ด ์์ธก(1)] ๋ฐ์ดํฐ ํ์ & EDA ๐ ๋ณธ ์์ ๋ kaggle ์ EDA & ML ์ฝ๋์ best practice๋ฅผ ๋ณด๋ฉฐ ์คํฐ๋ํ ๋ด์ฉ์ ๋๋ค. - ์ ์ฒด์ ์ธ ์ฝ๋๋ ์ด ๋งํฌ๋ก >> https://www.kaggle.com/code/oscarm524/ps-s3-ep16-eda-modeling-submission/notebook ๐ฆ ์ด๋ฒ ์๊ฐ์๋ '๊ฒ' ๋์ด๋ฅผ ์์ธกํ๋ ๊ฒ์ ์ฃผ์ ๋ก ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ , EDA๋ฅผ ํ๋ ๊ธฐ์ด์ ์ธ ๊ณผ์ ์ ์ดํด๋ณธ๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ load import pandas as pd import numpy as np import matplotlib.pyplot as plt; plt.style.use('ggplot') import seaborn as sns import plotly.express as px from sklearn.tre.. 2023. 9. 24. [์ค๊ณ ์ฐจ ๊ฐ๊ฒฉ ์์ธก(2)] EDA ๊ฐ์ฅ ๋จผ์ ๋ถ์์ ์์ํ๋ ค๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ ๋ค์์ ๋ฌด์์ ํด์ผํ ๊น? ์ง๋ ์๊ฐ์ pandas_profiling์์ ์ดํด๋ณธ ๋ฐ์ ๊ฐ์ด ๊ฐ ํผ์ณ์ ํผ์ณ๊ฐ ๊ด๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ์์ ์์ํด์ผํ๋ค. ์ ์ฒด์ ์ธ EDA์ ํ๋ฆ์ ๊ฑฐ๋ญ ์ตํ๋ณด์. ๐ EDA์ ์์์ ํผ์ณ ์ดํด โ 1. Feature ์ฒดํฌ - id : ์ํ ์์ด๋ | title : ์ ์กฐ์ฌ ๋ชจ๋ธ๋ช | odometer : ์ฃผํ ๊ฑฐ๋ฆฌ - location : ํ๋งค์ฒ(๋์ด์ง๋ฆฌ์ ๋์) | isimported : ํ์ง ์ฌ์ฉ ์ฌ๋ถ - engine : ์์ง ์ข ๋ฅ | transmission : ํธ๋์ค๋ฏธ์ ์ข ๋ฅ - fuel : ์ฐ๋ฃ ์ข ๋ฅ | paint : ํ์ธํธ ์์ | year : ์ ์กฐ๋ ๋ | target : ์๋์ฐจ ๊ฐ๊ฒฉ ํผ์ณ์ ๊ตฌ์ฑ๊ณผ ๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ฅผ ์ ํ์ ํด์ผ ๋ค.. 2023. 9. 17. [์ค๊ณ ์ฐจ ๊ฐ๊ฒฉ ์์ธก(1)] pandas_profiling ์ ์ด์ฉํ ํผ์ณ ์์ฝ ํ์ธ ๐ฅ pandas_profiling ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด๋ก๋ !pip install -U pandas-profiling ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ํ์์ ์ํ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ์ดํฐํ๋ ์์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋ฐ์ดํฐ์ ํต๊ณ์ ์์ฝ๊ณผ ์๊ฐํ, ๋ฐ์ดํฐ ํ์ง ํ๊ฐ ๋ฑ์ ์๋ํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ดํดํ๊ณ ๋ฐ์ดํฐ ๋ถ์ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋๋ฐ ๋์์ ์ฃผ์ด, ์๊ฐํ๋ค ๊ตฌ์ฒด์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ์๋ค. ๐ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ ํต๊ณ ์์ฝ : ๊ฐ ์ด์ ๋ํ ํต๊ณ ์์ฝ(ํ๊ท , ์ค์๊ฐ, ํ์คํธ์ฐจ ๋ฑ) ๐ ๋ฐ์ดํฐ ํ์ง ํ๊ฐ : nan ๊ฐ์ ๋น์จ๊ณผ ์ค๋ณต๋ ๋ ์ฝ๋์ ์๋ฅผ ํ์ธํ๊ณ , ์ด์์ ์ ๊ฐ์ง ๐ ์๊ฐํ : ๋ฐ์ดํฐ์ ๋ํ ๋ค์ํ ์๊ฐํ ๊ทธ๋ํ ์์ฑ ๐ ์๊ด๊ด๊ณ ๋ถ์ : ์ด ๊ฐ์ ์๊ด๊ด๊ณ ๋ถ์ ๋ฐ ์๊ฐํ ๐ ๋ณ์๊ฐ ๊ด๊ณ ํ์ ๐ ๋ณด๊ณ ์ ์์ฑ :.. 2023. 9. 17. [ํด์ธ ๋ถ๋์ฐ ์์ธ ์์ธก(2)] One-Hot Encoding & Ridge Regression Library Import import os import numpy as np import random from sklearn.preprocessing import OneHotEncoder from sklearn.linear_model import Ridge Data pre-processing : One-Hot Encoding ๋ช ๋ชฉํ ๋ณ์์ ๊ฒฝ์ฐ ๊ฐ๋ค ๊ฐ๊ฐ์ ์๋ก์ด ์ปฌ๋ผ์ผ๋ก ๋ง๋ค๊ณ ๐ ์๋ ํด๋นํ๋ ๊ฐ์๋ 1์, ์๋ ๊ฒฝ์ฐ 0์ ๋ถ์ฌ ์ด์ค For ๋ฌธ์ ์ด ์ด์ : One Hot Encoder๊ฐ Test ๋ฐ์ดํฐ๋ก๋ถํฐ Fitting๋๋ ๊ฒ์ Data Leakage์ด๋ฏ๋ก, Test ๋ฐ์ดํฐ์๋ Train ๋ฐ์ดํฐ๋ก Fitting๋ One Hot Encoder๋ก๋ถํฐ transform๋ง ์ํ๋์ด์ผ ํ๋ค! # ์ง์ ์ปฌ.. 2023. 9. 15. [ํด์ธ ๋ถ๋์ฐ ์์ธ ์์ธก(1)] ๊ธฐ๋ณธ์ ์ธ EDA ์ฐ์ต Data Load 8692๊ฐ์ ๋ฐ์ดํฐ ID : ์ํ ๋ณ ๊ณ ์ ID ๋ถ๋์ฐ ๊ด๋ จ ์ ๋ณด ํด๋น ๊ฑด๋ฌผ์ด ์์นํ ์๋์ ๊ฒฝ๋(๋จ, ์ง๋ api๋ฅผ ์ด์ฉํ์ฌ ์ถ๊ฐ์ ๋ณด๋ฅผ ํ์ฉํ ์ ์์) target: monthlyRent(us_dollar) : 1๋ฌ๋ฌ๋ฅผ ๋จ์๋ก ํ๋ ์์ธ ๊ฐ๊ฒฉ ๊ธฐ๋ณธ์ ์ธ EDA โถ๏ธ ์ง์ ๋ณ์์ ์์ ๋ณ์ ํ์ธ # ์ง์ ๋ณ์ qual_df = total_df[['propertyType', 'suburbName']] # ์์ ๋ณ์ quan_df = total_df.drop(columns = ['propertyType', 'suburbName']) โถ๏ธ ๊ฒฐ์ธก์น, ํ๊ณผ ์ปฌ๋ผ ๊ตฌ์ฑ, ๋ฐ์ดํฐํ์ / ํต๊ณ๋ ํ์ธ โถ๏ธ ์๊ฐํ 1) ์์ ๋ณ์ ๋ถํฌ ํ์ธ : ํ์คํ ๊ทธ๋จ quan_df.hist(bins = 100, f.. 2023. 9. 15. ์ด์ 1 2 3 ๋ค์ 728x90