종속변수(label, y) : 아파트 가격
독립변수(feature, x) : 범죄율, 대중교통 접근성, 방의 개수, 학교 수, Etc.
회귀 분석이란, 변수들 간의 관계를 분석하는 통계적 절차.
독립변수와 종속변수 간의 상관 관계를 분석하는 통계적 절차.
선형 회귀 분석(Linear Regression)
- 독립변수와 종속변수의 관계가 선형인 경우.
- 독립변수가 1개인 경우 : 단순 선형 회귀(Simple Linear Regression)
- 독립변수가 2개 이상인 경우 : 다중 선형 회귀(Multiple Linear Regression)
sklearn.linear_model의 LinearRegression 사용
1) 회귀분석에 사용할 데이터 확인
2) LinearRegression 클래스 객체 생성
3) .fit 메소드에 학습 데이터 전달 및 학습
4) .predict 메소드를 통해 학습된 모델 검증
* 보스턴 주택 가격 데이터셋을 활용한 방의 개수로 주택 가격을 예측하는 회귀분석 모델 예시
'''
-------- [최종 출력 결과] --------
Data shape: (506, 13)
X shape: (506,)
y shape: (506,)
X reshape result: (506, 1)
y reshape result: (506, 1)
Testing data shape: (50, 1)
----------------------------------
'''
# 필요한 라이브러리 로딩
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
# Boston housing price 데이터셋 로딩
boston = load_boston()
print('Data shape:', boston.data.shape)
# 독립변수, 종속변수 데이터 정의
X_rooms = boston.data[ : , 5]
y = boston.target
print('X shape:', X_rooms.shape)
print('y shape:', y.shape)
# 데이터의 분포 확인을 위해 산점도로 시각화
plt.figure()
plt.scatter(X_rooms, y)
plt.xlabel('Number of rooms')
plt.ylabel('Values of house')
plt.show()
# 2차원 데이터로 shape 변환
X_rooms = X_rooms.reshape(-1, 1)
y = y.reshape(-1, 1)
print('X reshape result:', X_rooms.shape)
print('y reshape result:' , y.shape)
# LinearRegression 객체 생성
regression = LinearRegression()
# 학습데이터 연결 및 학습 수행
regression.fit(X_rooms, y)
# 테스팅에 사용할 데이터 생성
testing = np.linspace(min(X_rooms), max(X_rooms)).reshape(-1, 1)
print('Testing data shape:', testing.shape)
# 모델 예측 수행
y_pred = regression.predict(testing)
# 최적의 회귀선 시각화
plt.figure(figsize=(10, 5))
# plt.scatter 이용해서 산점도 시각화
plt.scatter(X_rooms, y)
# plt.plot 이용해서 라인 그래프 시각화
plt.plot(testing, y_pred, color='red', linewidth=3)
plt.xlabel('Number of rooms')
plt.ylabel('Values of house')
plt.show()
'프로젝트 > 코드프레소 체험단' 카테고리의 다른 글
파이썬으로 구현하는 머신러닝 : 회귀분석 - 회귀모델의 추정과 평가 (0) | 2022.01.16 |
---|---|
시각화를 위한 Matplotlib 활용하기 (0) | 2022.01.16 |
TensorFlow로 시작하는 딥러닝 - 딥러닝 모델의 성능 (0) | 2022.01.16 |
딥러닝 첫 걸음 시작하기! - 완강후기 (0) | 2022.01.15 |
딥러닝 첫 걸음 시작하기! - 딥러닝의 태동과 퍼셉트론 (0) | 2022.01.15 |