패스트 캠퍼스 강의를 듣고 혼자 연습해 본 것을 기록한 것입니다.
배운 내용을 예제 데이터가 아닌 실제로 있는 데이터로 실습해보고 싶어서 Kaggle을 이용했다.
집의 노후화(YearBuilt)와 대지의 크기(LotArea)를 이용.
(숫자 데이터로 하는 방법밖에 몰라서 최대한 정수 타입의 데이터를 가지고 실습)
X 축 : YearBuilt, Y축 : LotArea
import numpy as np
import pandas as pd
from sklearn import linear_model
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
# 1. 데이터 로드
home_df_test = pd.read_csv("home-data-for-ml-course/test.csv")
home_df_train = pd.read_csv("home-data-for-ml-course/train.csv")
# 2. 독립변수와 종속변수 구분
home_df_test_x = home_df_test[["YearBuilt"]]
home_df_test_y = home_df_test[["LotArea"]]
home_df_train_x = home_df_train[["YearBuilt"]]
home_df_train_y = home_df_train[["LotArea"]]
# 3. 데이터 분석 : 선형 회귀 모델
model = linear_model.LinearRegression()
model.fit(home_df_train_x, home_df_train_y)
# 4. 성능 평가 : MAE
pred_y = model.predict(home_df_test_x)
# test y축과 예측 y축 데이터 타입 맞추기
pred_y = np.around(pred_y.flatten()).astype("int")
# 성능 평가
mae = mean_absolute_error(home_df_test_y, pred_y)
round(mae,2)
# 5. 예측 함수
def make_df(YearBuilt):
return pd.DataFrame({"YearBuilt":[YearBuilt]})
result = int(model.predict(make_df(2017)).flatten()[0])
result
# pickle 파일로 모델 저장하기
import pickle
with open("home-data-for-ml-course/practice_model.pkl", "wb") as f:
pickle.dump(model, f)
# pickle 파일로 모델 불러오기
with open("home-data-for-ml-course/practice_model.pkl", "rb") as f:
load_model = pickle.load(f)
result = int(load_model.predict(make_df(2017)).flatten()[0])