Machine Learning

[Machine Learning] 회귀분석(Regression)_3

구루싸 2019. 11. 7. 20:16
반응형
SMALL

정말 오랜만에 학습을 진행하네요-_- 역시 노는게 제일 좋다는

이번 학습의 주제는 다중회귀분석(Multivariate Regression)입니다

앞서 학습한 단순회귀분석은 단일 항이든 다항이든 결과에 영향을 주는 변수(독립 변수)가 한개 였습니다만

이번에 학습할 다중회귀분석은 이 독립 변수가 여러 가지일 때 사용합니다

# 판다스(Pandas)
import pandas
import numpy
import matplotlib.pyplot as mp
import matplotlib
import seaborn

# Prepare Data
filepath = "/Users/dennis_sa/Documents/"
# 0번 로우를 header로 설정 
read_data = pandas.read_csv(filepath+"auto-mpg.data-original", header = None, sep = '\s+') 
read_data.columns = ['연비(mpg)', '실린더 수(cylinders)', '배기량(displacement)', '출력(horsepower)',
                     '차중(weight)', '가속능력(acceleration)', '출시년도(model_year)', '제조국(origin)', '모델명(name)']

matplotlib.rc('font', family = 'AppleGothic') # MAC OS 일 경우 한글 폰트 오류 해결
pandas.set_option('display.max_columns', 10)

# Explore Data
print(read_data.info(), end = '\n')
print(read_data.describe(), end = '\n')
print(read_data['연비(mpg)'], end = '\n')
print(read_data['출력(horsepower)'], end = '\n')
read_data.dropna(subset = ['연비(mpg)'], axis = 0, inplace = True)
read_data.dropna(subset = ['출력(horsepower)'], axis = 0, inplace = True)
print(read_data.info(), end = '\n') 

# Choose Variables
choose_data = read_data[['연비(mpg)', '실린더 수(cylinders)', '출력(horsepower)', '차중(weight)']]
print(choose_data, end = '\n')

x = choose_data[['실린더 수(cylinders)', '출력(horsepower)', '차중(weight)']]
y = choose_data[['연비(mpg)']]
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.3, random_state = 10)

# 학습 및 검증
from sklearn.linear_model import LinearRegression # 선형회귀분석
lr = LinearRegression()
lr.fit(x_train, y_train)
r_square = lr.score(x_test, y_test)
print(r_square, end = '\n')

y_hat = lr.predict(x_test)
mp.figure(figsize = (10, 5))
ax1 = seaborn.distplot(y_test, hist = False, label = 'y_test')
ax2 = seaborn.distplot(y_hat, hist = False, label = 'y_hat', ax = ax1)
mp.show()
mp.close()

독립 변수를 여러 개 설정하는거 외에 다른 진행과정은 단순회귀분석을 진행할 때와 크게 차이는 없었네요

여기서 회귀분석 학습을 마무리하고 다음에는 분류를 학습해보도록 하겠습니다

그럼 이만-_-

반응형
LIST