자습서: R에서 SQL 기계 학습을 사용하여 예측 모델을 학습시키기 위한 데이터 준비
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL Managed Instance
4부로 구성된 이 자습서 시리즈의 2부에서는 R을 사용하여 데이터베이스의 데이터를 준비합니다. 이 시리즈의 뒷부분에서는 R에서 SQL Server Machine Learning Services 또는 빅 데이터 클러스터를 사용하여 이 데이터로 예측 모델을 학습시키고 배포합니다.
4부로 구성된 이 자습서 시리즈의 2부에서는 R을 사용하여 데이터베이스의 데이터를 준비합니다. 이 시리즈의 뒷부분에서는 R에서 SQL Server Machine Learning Services를 사용하여 이 데이터로 예측 모델을 학습시키고 배포합니다.
4부로 구성된 이 자습서 시리즈의 2부에서는 R을 사용하여 데이터베이스의 데이터를 준비합니다. 이 시리즈의 뒷부분에서는 R에서 SQL Server R Services를 사용하여 이 데이터로 예측 모델을 학습시키고 배포합니다.
4부로 구성된 이 자습서 시리즈의 2부에서는 R을 사용하여 데이터베이스의 데이터를 준비합니다. 이 시리즈의 뒷부분에서는 R에서 Azure SQL Managed Instance Machine Learning Services를 사용하여 이 데이터로 예측 모델을 학습시키고 배포합니다.
이 문서에서는 다음을 수행하는 방법을 알아봅니다.
- 샘플 데이터베이스를 데이터베이스에 복원
- 데이터베이스의 데이터를 R 데이터 프레임에 로드
- 일부 열을 범주로 식별하여 R에서 데이터 준비
1부에서 샘플 데이터베이스를 복원하는 방법을 배웠습니다.
3부에서는 R에서 기계 학습 모델을 학습시키는 방법을 알아봅니다.
4부에서는 모델을 데이터베이스에 저장한 다음, 2부와 3부에서 개발한 R 스크립트에서 저장 프로시저를 만드는 방법을 알아봅니다. 저장 프로시저는 서버에서 실행되어 새 데이터를 기반으로 미래를 예측합니다.
사전 요구 사항
이 자습서 시리즈의 2부에서는 1부 및 해당 전제 작업을 완료했다고 가정합니다.
데이터 프레임에 데이터 로드
R에서 데이터를 사용하려면 데이터베이스의 데이터를 데이터 프레임(rentaldata
)에 로드합니다.
RStudio에서 새 RScript 파일을 만든 후 다음 스크립트를 실행합니다. ServerName을 해당하는 연결 정보로 바꿉니다.
#Define the connection string to connect to the TutorialDB database
connStr <- "Driver=SQL Server;Server=ServerName;Database=TutorialDB;uid=Username;pwd=Password"
#Get the data from the table
library(RODBC)
ch <- odbcDriverConnect(connStr)
#Import the data from the table
rentaldata <- sqlFetch(ch, "dbo.rental_data")
#Take a look at the structure of the data and the top rows
head(rentaldata)
str(rentaldata)
다음과 비슷한 결과가 표시됩니다.
Year Month Day RentalCount WeekDay Holiday Snow
1 2014 1 20 445 2 1 0
2 2014 2 13 40 5 0 0
3 2013 3 10 456 1 0 0
4 2014 3 31 38 2 0 0
5 2014 4 24 23 5 0 0
6 2015 2 11 42 4 0 0
'data.frame': 453 obs. of 7 variables:
$ Year : int 2014 2014 2013 2014 2014 2015 2013 2014 2013 2015 ...
$ Month : num 1 2 3 3 4 2 4 3 4 3 ...
$ Day : num 20 13 10 31 24 11 28 8 5 29 ...
$ RentalCount: num 445 40 456 38 23 42 310 240 22 360 ...
$ WeekDay : num 2 5 1 2 5 4 1 7 6 1 ...
$ Holiday : int 1 0 0 0 0 0 0 0 0 0 ...
$ Snow : num 0 0 0 0 0 0 0 0 0 0 ...
데이터 준비
이 샘플 데이터베이스에서는 대부분의 준비가 이미 수행되었지만 여기서 준비 작업을 하나 더 수행합니다. 다음 R 스크립트를 사용하고 데이터 형식을 비율로 변경하여 세 개의 열을 범주로 식별합니다.
#Changing the three factor columns to factor types
rentaldata$Holiday <- factor(rentaldata$Holiday);
rentaldata$Snow <- factor(rentaldata$Snow);
rentaldata$WeekDay <- factor(rentaldata$WeekDay);
#Visualize the dataset after the change
str(rentaldata);
다음과 비슷한 결과가 표시됩니다.
data.frame': 453 obs. of 7 variables:
$ Year : int 2014 2014 2013 2014 2014 2015 2013 2014 2013 2015 ...
$ Month : num 1 2 3 3 4 2 4 3 4 3 ...
$ Day : num 20 13 10 31 24 11 28 8 5 29 ...
$ RentalCount: num 445 40 456 38 23 42 310 240 22 360 ...
$ WeekDay : Factor w/ 7 levels "1","2","3","4",..: 2 5 1 2 5 4 1 7 6 1 ...
$ Holiday : Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 1 ...
$ Snow : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
이제 해당 데이터를 학습에 사용할 준비가 되었습니다.
리소스 정리
이 자습서를 계속 진행할 생각이 없으면 TutorialDB 데이터베이스를 삭제하세요.
다음 단계
이 자습서 시리즈의 2부에서는 다음 작업을 수행하는 방법을 알아보았습니다.
- R 데이터 프레임에 샘플 데이터 로드
- 일부 열을 범주로 식별하여 R에서 데이터 준비
TutorialDB 데이터베이스의 데이터를 사용하는 기계 학습 모델을 만들려면 다음 자습서 시리즈의 3부를 수행합니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기