반응형
단일 선형회귀분석 실습¶
pacakge설명¶
- pandas : 데이터 분석, 가공, 처리 등을 쉽게 하기 위한 자료구조와 처리 함수들을 제공하는 패키지
- numpy : 파이썬 언어를 위한 행렬, 벡터 등의 수학 계산을 위한 자료구조와 계산 함수를 제공하는 패키지
- pandas : 데이터 분석, 가공, 처리 등을 쉽게 하기 위한 자료구조와 처리 함수들을 제공하는 패키지
- matplotlib : 플롯(그래프)를 그릴 때 주로 쓰이는 2D, 3D 플롯팅 패키지
- matplotlib.pyplot : matplotlib의 서브패키지로 *MATLAB 처럼 플롯을 그려주는 패키지
- pandas : 데이터 분석, 가공, 처리 등을 쉽게 하기 위한 자료구조와 처리 함수들을 제공하는 패키지
In [41]:
from sklearn import linear_model
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
matplotlib.style.use('ggplot')
In [46]:
data = {'x': [13, 19, 16, 14, 15, 14],
'y': [40, 83, 62, 48, 58, 43]}
data = pd.DataFrame(data)
data
Out[46]:
데이터를 scatter를 이용하여 뿌리기¶
In [45]:
data.plot(kind="scatter", x='x', y='y',color="black")
Out[45]:
데이터 학습시키기¶
In [48]:
linear_regression = linear_model.LinearRegression()
linear_regression.fit(X=pd.DataFrame(data["x"]), y= data["y"])
prediction = linear_regression.predict(X=pd.DataFrame(data["x"]))
print("a value: ", linear_regression.intercept_)
print("b value: ", linear_regression.coef_)
적합도 검증¶
In [49]:
residuals = data["y"] - prediction
residuals.describe()
Out[49]:
In [50]:
#잔차 제곱 합
SSE = (residuals**2).sum()
SST = ((data["y"]-data["y"].mean())**2).sum()
R_squared = 1-(SSE/SST)
print("R_squared: ", R_squared)
In [51]:
data.plot(kind="scatter", x = 'x', y='y', color="black")
plt.plot(data['x'], prediction, color='blue')
Out[51]:
성능평가 하기¶
In [52]:
from sklearn.metrics import mean_squared_error
print('score: ', linear_regression.score(X=pd.DataFrame(data["x"]), y=data["y"]))
print('Mean Squared Error: ', mean_squared_error(prediction, data["y"]))
print("RMSE: ", mean_squared_error(prediction, data["y"])**0.5)
반응형
'Study > 파이썬으로 데이터 주무르기' 카테고리의 다른 글
[서울시 범죄율] folium을 이용한 시각화 (0) | 2018.07.11 |
---|---|
[Linear regression] Boston dataset에 실제 적용해 보기 (0) | 2018.07.09 |
[Linear regression] 단일선형회귀분석이란? (0) | 2018.07.09 |
[모델 성능 평가 척도] 유방암 진단 데이터(Breast Cancer) (0) | 2018.07.09 |
[모델 성능 평가 척도] Residuals / MSE / RMSE (0) | 2018.07.09 |
댓글