728x90
[ 범죄율로 집 값 예측하기 ]
scikit-learn을 사용하여 선형 회귀를 직접 연습하기.
- CRIM : 동네의 범죄율
- 범죄율 열을 선택
- training-test set 나누기
- 모델을 학습
- test 데이터로 예측
< 조건 >
- 입력 변수로는 범죄율 열만 이용.
- train_test_split 함수의 옵셔널 파라미터는 test_size = 0.2, random_state = 5
- 예측 값 벡터 변수 이름은 y_test_predict
# 필요한 라이브러리 import
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import pandas as pd
# 보스턴 집 데이터 갖고 오기
boston_house_dataset = datasets.load_boston()
# 입력 변수를 사용하기 편하게 pandas dataframe으로 변환
X = pd.DataFrame(boston_house_dataset.data, columns=boston_house_dataset.feature_names)
# 목표 변수를 사용하기 편하게 pandas dataframe으로 변환
y = pd.DataFrame(boston_house_dataset.target, columns=['MEDV'])
X = X[['CRIM']] # 범죄율 열만 사용
# train_test_split를 사용해서 주어진 데이터를 학습, 테스트 데이터로 나눈다
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state=5)
linear_regression_model = LinearRegression() # 선형 회귀 모델을 가지고 오고
linear_regression_model.fit(X_train, y_train) # 학습 데이터를 이용해서 모델을 학습 시킨다
y_test_predict = linear_regression_model.predict(X_test) # 학습시킨 모델로 예측
# 평균 제곱 오차의 루트를 통해서 테스트 데이터에서의 모델 성능 판단
mse = mean_squared_error(y_test, y_test_predict)
mse ** 0.5
※ load_boston() 은 scikit-learn 1.2 버전부터는 지원되지 않음을 주의.
728x90
반응형
'DB > ML' 카테고리의 다른 글
[머신러닝] 로지스틱 회귀 (Logistic Regression) (0) | 2023.12.21 |
---|---|
[머신러닝] 선형 회귀(Linear Regression) (1) | 2023.12.20 |
Kaggle(캐글) 타이타닉 생존자 예측하기 (1) (0) | 2023.12.19 |
댓글