파이썬 빅데이터 분석 Day 11

2023. 10. 26. 15:48·데이터분석실습/데이터 과학 기반의 파이썬 빅데이터 분석

11. 데이터 분석하기 보스턴 주택가격 예측(22.07.20)

[선형 회귀 분석 + 산점도/선형 회귀 그래프]

목표:보스턴 주택 가격 데이터에 회귀분석을 수행, 주택가격 예측

 

머신러닝이란?: 인간이 지식과 경험을 학습하는 방법을 적용하여 컴퓨터에 입력된 데이터에서 스스로 패턴을 찾아 학습하여 새로운 지식을 만들고 예측하는 통찰을 제공하는 AI

 

[데이터수집]->[데이터 전처리 및 훈련/테스트 데이터 분할]->모델 구축 및 학습->모델 평가->예측

 

지도학습이란?: 학습을 하기 위한 훈련데이터에 입/출력 결과를 모두 제공시켜 학습시키는 방식 ->[회귀, 분류]

입력: 예측변수, 속성, 특징(feature)

출력: 반응변수, 목표변수, 클래스, 레이블

 

사이킷런이란?: 파이썬의 머신러닝 라이브버리중 가장 많이 사용되는 것중 하나.

평가지표에 대한 자세한 내용은 [머신러닝] 카테고리에 정리했습니다.

1.데이터 수집, 준비 및 탐색

보스턴 주택 가격데이터는 공개 데이터셋으로 사이킷런에 내장되어 있다.

from sklearn.datasets import load_boston
boston=load_boston()
print(boston.DESCR)

[02행]:sklearn의 학습용 데이터셋에서 boston 데이터셋을 로드한다.

(경고창이 뜨는데, 다음버전부터는 어떤 윤리적 문제땜에 데이터셋을 따로 수정해야 한다고 하는 것 같다.

boston_df=pd.DataFrame(boston.data,columns=boston.feature_names)
boston_df['PRICE']=boston.target
boston_df.head()
boston_df.shape
boston_df.info()

[01행]: 로드한 boston 데이터셋 객체를 데이터프레임 형태로 가져온다.

[02행]: 데이터셋의 종속변수인 target column을 데이터프레임에 합쳐준다.

[04~05행]: 데이터셋에 대한 정보를 확인한다.

2.분석 모델 구축, 결과 분석 및 시각화

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

x=boston_df.drop(['PRICE'],axis=1)
y=boston_df['PRICE']

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=156)

lr=LinearRegression()
lr.fit(x_train,y_train)

y_pred=lr.predict(x_test)

[01~03행]: sklearn에서 선형회귀모델과 테스트셋과 트레인셋을 나누고 평가지표들인 mse,r^2를 불러온다.

[04,05행]: 예측에 사용될 독립변수(price행을 제외한 나머지)와 종속변수 (prcie column)을 가져온다.

[06행]: random state를 156으로 고정하고, 테스트셋과 트레인셋의 비율을 7:3으로 분할한다.

[07~09행]: 선형회귀모델을 통해서 y_pred을 산출

mse=mean_squared_error(y_test,y_pred)
rmse=np.sqrt(mse)
r2=r2_score(y_test,y_pred)

print('MSE: {0: .3f},RMSE: {1:.3f}'.format(mse,rmse))
print('R^2(Variance score): {0: .3f}'.format(r2))

print('Y절편: ',lr.intercept_)
print('회귀 계수 값:', np.round(lr.coef_, 1))

coef=pd.Series(data=np.round(lr.coef_,2),index=x.columns)
coef.sort_values(ascending=False)

[01~03행]: mse,rmse,r^2 평가지표들을 load

[04,05행]: 모델의 성능을 평가

[06~09행]: 선형회귀식을 산출하기위한 계수들을 계산

다음 아래와 같은 값들과 선형회귀식이 산출되게 된다.

MSE: 17.297 / RMSE: 4.159

R^2: 0.757

Y절편: 40.995595172164336

YPRICE = -0.11XCRIM + 0.07XzN + 0.03XINDUS + 3.05XCHAS - 19.80XNOX + 3.35XRM + 0.0LXACE - 1.74X DIS + 0.30XRAD - 0.01XTAX - 0.92XPTRATIO + 0.01XB - 0.57XISTAT + 41.00

3.시각화

마지막으로 종속변수인 'PRICE'를 제외한 독리변수들이 회귀분석에 끼치는 영향을 시각화해보았다.

import matplotlib.pyplot as plt
import seaborn as sns

fig,axes=plt.subplots(figsize=(16,16),ncols=3,nrows=5)
x_features=boston_df.columns[:-1]

for i,feature in enumerate(x_features):
	row=int(i/3)
	col=i%3
	sns.regplot(x=feature, y='PRICE',data=boston_df,ax=axes[row][col])

.

728x90

'데이터분석실습 > 데이터 과학 기반의 파이썬 빅데이터 분석' 카테고리의 다른 글

파이썬 빅데이터 분석 Day 13  (0) 2023.10.26
파이썬 빅데이터 분석 Day 12  (1) 2023.10.26
파이썬 빅데이터 분석 Day 10  (1) 2023.10.26
파이썬 빅데이터 분석 Day 9  (1) 2023.10.26
파이썬 빅데이터 분석 Day 8  (0) 2023.10.26
'데이터분석실습/데이터 과학 기반의 파이썬 빅데이터 분석' 카테고리의 다른 글
  • 파이썬 빅데이터 분석 Day 13
  • 파이썬 빅데이터 분석 Day 12
  • 파이썬 빅데이터 분석 Day 10
  • 파이썬 빅데이터 분석 Day 9
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    파이썬
    이분탐색
    DFS
    백준
    이것이취업을위한코딩테스트다
    나동빈
    그리디
    이코테
    BFS
    dp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

상단으로

티스토리툴바