Python 자습서: SQL 기계 학습을 사용하여 선형 회귀 모델 학습
적용 대상: SQL Server 2017(14.x) 이상 Azure SQL Managed Instance
4부로 구성된 이 자습서 시리즈의 3부에서는 PYTHON에서 선형 회귀 모델을 학습합니다. 이 시리즈의 다음 파트에서는 Machine Learning Services를 사용하는 SQL Server 데이터베이스 또는 SQL Server 2019 빅 데이터 클러스터에 이 모델을 배포합니다.
4부로 구성된 이 자습서 시리즈의 3부에서는 PYTHON에서 선형 회귀 모델을 학습합니다. 이 시리즈의 다음 파트에서는 Machine Learning Services를 사용하여 이 모델을 SQL Server에 배포합니다.
4부로 구성된 이 자습서 시리즈의 3부에서는 PYTHON에서 선형 회귀 모델을 학습합니다. 이 시리즈의 다음 부분에서는 Machine Learning Services를 사용하여 이 모델을 Azure SQL Managed Instance 데이터베이스에 배포합니다.
이 문서에서는 다음을 수행하는 방법을 알아봅니다.
- 선형 회귀 모델 학습
- 선형 회귀 모델을 사용하여 예측
1부에서는 샘플 데이터베이스를 복원하는 방법을 알아보았습니다.
2부에서는 데이터베이스의 데이터를 Python 데이터 프레임에 로드하고, Python에서 데이터를 준비하는 방법을 알아보았습니다.
4부에서는 모델을 데이터베이스에 저장한 다음, 2부와 3부에서 개발한 Python 스크립트에서 저장 프로시저를 만드는 방법을 알아봅니다. 저장 프로시저는 서버에서 실행되어 새 데이터를 기반으로 예측을 만듭니다.
필수 조건
- 이 자습서의 3부에서는 필요한 Python 패키지 설치를 포함하여 1부와 해당 필수 구성 요소를 완료했다고 가정합니다.
모델 학습
예측하려면 데이터 세트의 변수 간의 종속성을 가장 잘 설명하는 함수(모델)를 찾아야 합니다. 이를 모델 학습이라고 합니다. 학습 데이터 세트는 이 시리즈의 2부에서 만든 pandas 데이터 프레임 df
에서 전체 데이터 세트의 하위 세트가 됩니다.
선형 회귀 알고리즘을 사용하여 모델 lin_model
을 학습합니다.
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# Store the variable we'll be predicting on.
target = "Rentalcount"
# Generate the training set. Set random_state to be able to replicate results.
train = df.sample(frac=0.8, random_state=1)
# Select anything not in the training set and put it in the testing set.
test = df.loc[~df.index.isin(train.index)]
# Print the shapes of both sets.
print("Training set shape:", train.shape)
print("Testing set shape:", test.shape)
# Initialize the model class.
lin_model = LinearRegression()
# Fit the model to the training data.
lin_model.fit(train[columns], train[target])
다음과 유사한 결과가 표시되어야 합니다.
Training set shape: (362, 7)
Testing set shape: (91, 7)
예측 만들기
예측 함수를 사용하여 모델 lin_model
을 사용하여 임대 수를 예측합니다.
# Generate our predictions for the test set.
lin_predictions = lin_model.predict(test[columns])
print("Predictions:", lin_predictions)
# Compute error between our test predictions and the actual values.
lin_mse = mean_squared_error(lin_predictions, test[target])
print("Computed error:", lin_mse)
다음과 유사한 결과가 표시되어야 합니다.
Predictions: [124.41293228 123.8095075 117.67253182 209.39332151 135.46159387
199.50603805 472.14918499 90.15781602 216.61319499 120.30710327
89.47591091 127.71290441 207.44065517 125.68466139 201.38119194
204.29377218 127.4494643 113.42721447 127.37388762 94.66754136
90.21979191 173.86647615 130.34747586 111.81550069 118.88131715
124.74028405 211.95038051 202.06309706 123.53053083 167.06313191
206.24643852 122.64812937 179.98791527 125.1558454 168.00847713
120.2305587 196.60802649 117.00616326 173.20010759 89.9563518
92.11048236 120.91052805 175.47818992 129.65196995 120.97443971
175.95863082 127.24800008 135.05866542 206.49627783 91.63004147
115.78280925 208.92841718 213.5137192 212.83278197 96.74415948
95.1324457 199.9089665 206.10791806 126.16510228 120.0281266
209.08150631 132.88996619 178.84110582 128.85971386 124.67637239
115.58134503 96.82167192 514.61789505 125.48319717 207.50359894
121.64080826 201.9381774 113.22575025 202.46505762 90.7002328
92.31194658 201.25627228 516.97252195 91.36660136 599.27093251
199.6445585 123.66905128 117.4710676 173.12259514 129.60359486
209.59478573 206.29481361 210.69322009 205.50255751 210.88011563
207.65572019]
Computed error: 35003.54030828391
다음 단계
이 자습서 시리즈의 3부에서는 다음 단계를 완료했습니다.
- 선형 회귀 모델 학습
- 선형 회귀 모델을 사용하여 예측
만든 기계 학습 모델을 배포하려면 다음 자습서 시리즈의 4부를 따르세요.