티스토리 뷰
In [18]:
(1) Python package 로드 및 matplotlib 출력 옵션 설정
In [19]:
# 사용할 패키지들을 불러와서 포함시키는 코드이다.
# python package들을 가져오는 것과 matplotlib 출력 옵션 설정에 대한 내용이다.
from sklearn import linear_model
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
matplotlib.style.use('ggplot')
In [20]:
(2) 데이터 생성
In [21]:
data = {'x1' : [13, 18, 17, 20, 22, 21],
'x2' : [9, 7, 17, 11, 8, 10],
'y' : [20, 22, 30, 27, 35, 32]}
# data 변수 안에 dictionary형태의 x1, x2, y key 이름을 가진 데이터를 생성한다.
data = pd.DataFrame(data)
# data변수 안에 저장된 데이터를 pandas.DataFrame 함수를 통해 2차원의 수정 가능한 테이블 형태의 구조로 변경 후 data 변수에 저장
X = data[['x1', 'x2']]
# 독립변수들을 따로 변수에 저장. "data"데이터 프레임 안에 독립변수 "x1"과 "x2"를 "X"라는 변수에 저장.
y = data['y']
data
Out[21]:
In [22]:
(3) 데이터 학습
In [23]:
# 앞의 단일 선형회귀모델 실습에서 보신 내용과 동일한 코드를 이용하여 학습을 진행한다.
# 하나의 a값과 두 개의 b값이 출력된다. b값은 독립변수 개수만큼 생성되기 때문이다.
linear_regression = linear_model.LinearRegression()
linear_regression.fit(X = pd.DataFrame(X), y = y)
prediction = linear_regression.predict(X = pd.DataFrame(X))
print('a value = ', linear_regression.intercept_)
print('b value = ', linear_regression.coef_)
In [24]:
(4) 적합도 검증
In [25]:
# 적합도 검증 - 잔차
residuals = y-prediction
residuals.describe()
Out[25]:
In [26]:
# 적합도 검증 - 결정계수
SSE = (residuals**2).sum()
SST = ((y-y.mean())**2).sum()
R_squared = 1 - (SSE/SST)
print('R_squared = ', R_squared)
In [27]:
# 출력된 결정계수 79.6%는 독립변수들이 종속변수에 상당한 영향을 주는 것을 말한다.
In [28]:
(5) 성능 평가
In [29]:
# 생성된 회귀분석모델에 대한 결정계수 MSE, RMSE를 구해보자.
from sklearn.metrics import mean_squared_error
print('score = ', linear_regression.score(X =pd.DataFrame(X), y=y))
print('Mean_Squared_Error = ', mean_squared_error(prediction, y))
print('RMSE = ', mean_squared_error(prediction, y)**0.5)
In [30]:
# RMSE가 2.39 정도로 오차도 작은 것을 확인했다.
In [ ]:
출처 - 파이썬을 이용한 데이터 분석
'beginner > 파이썬 분석' 카테고리의 다른 글
Iris 데이터를 이용해 간단한 랜덤 포레스트 구현 (1) | 2019.02.06 |
---|---|
의사결정 트리 파이썬 코드 실습 (3) | 2019.02.02 |
단일선형회귀분석 ② (0) | 2019.01.28 |
단일선형회귀분석 ① (0) | 2019.01.24 |
서울시 범죄 현황 분석 (0) | 2019.01.20 |