[데이터분석] Linear Regression 실습

hyelimchoi1223·2021년 2월 7일
0

[Study] 데이터분석

목록 보기
1/2

패스트 캠퍼스 강의를 듣고 혼자 연습해 본 것을 기록한 것입니다.

Linear Regression

배운 내용을 예제 데이터가 아닌 실제로 있는 데이터로 실습해보고 싶어서 Kaggle을 이용했다.

사용 데이터

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])

0개의 댓글