Azure 자습서: Azure Machine Learning Studio를 사용하여 가스 가격 예측
게시 됨: 2022-03-11다음 달에 선택한 주식이 상승할지 하락할지 예측할 수 있다면 어떨까요? 아니면 좋아하는 축구팀이 다음 경기에서 이기거나 진다면? 어떻게 그런 예측을 할 수 있습니까? 아마도 기계 학습이 해답의 일부를 제공할 수 있습니다. Windows Phone 8.1과 함께 제공되는 Bing으로 구동되는 새로운 디지털 개인 비서 Cortana는 2014년 FIFA 월드컵에서 16개 경기 중 15개 경기를 정확하게 예측했습니다.
이 Azure 자습서에서는 일상 생활에서 직면하는 문제 중 하나를 해결하여 Azure Machine Learning 기능을 탐색합니다.
기계 학습 개발자의 관점에서 문제는 표준 방법으로 해결할 수 있는 문제와 표준 방법으로 해결할 수 없는 두 그룹으로 나눌 수 있습니다. 불행히도 대부분의 실생활 문제는 두 번째 그룹에 속합니다. 여기서 기계 학습이 작동합니다. 기본 아이디어는 기계를 사용하여 과거 데이터에서 의미 있는 패턴을 찾고 문제를 해결하는 데 사용하는 것입니다.
문제
휘발유 가격은 아마도 대부분의 사람들의 예산에 이미 포함된 항목 중 하나일 것입니다. 지속적인 증가 또는 감소는 다른 식료품 및 서비스 가격에도 영향을 미칠 수 있습니다. 기상 조건에서 정치적 결정 및 행정 비용에 이르기까지, 그리고 자연 재해나 전쟁과 같이 완전히 예측할 수 없는 요인에 이르기까지 가스 가격에 영향을 미칠 수 있는 많은 요인이 있습니다.
이 Azure 기계 학습 자습서의 계획은 액세스 가능한 일부 데이터를 조사하고 예측 모델을 만드는 데 활용할 수 있는 상관 관계를 찾는 것입니다.
Azure 기계 학습 스튜디오
Azure Machine Learning Studio는 데이터 실험을 개발하기 위한 웹 기반 IDE(통합 개발 환경)입니다. Azure의 나머지 클라우드 서비스와 밀접하게 연결되어 있으며 기계 학습 모델 및 서비스의 개발 및 배포를 단순화합니다.
실험 만들기
기계 학습 예제를 만드는 다섯 가지 기본 단계가 있습니다. 우리는 가스 가격에 대한 자체 예측 모델을 개발하여 이러한 각 단계를 검토할 것입니다.
데이터 얻기
데이터 수집은 이 프로세스에서 가장 중요한 단계 중 하나입니다. 데이터의 관련성과 명확성은 좋은 예측 모델을 만드는 기초입니다. Azure Machine Learning Studio는 다양한 샘플 데이터 세트를 제공합니다. 또 다른 훌륭한 데이터 세트 모음은 archive.ics.uci.edu/ml/datasets.html에서 찾을 수 있습니다.
데이터를 수집한 후 간단한 데이터 업로드 메커니즘을 통해 Studio에 업로드해야 합니다.
업로드되면 데이터를 미리 볼 수 있습니다. 다음 그림은 방금 업로드한 데이터의 일부를 보여줍니다. 여기서 우리의 목표는 E95로 표시된 열 아래의 가격을 예측하는 것입니다.
다음 단계는 왼쪽 패널에서 작업 영역으로 모듈을 끌어다 놓아 새로운 실험을 만드는 것입니다.
데이터 전처리
사용 가능한 데이터를 사전 처리하려면 사용 가능한 데이터를 필요에 맞게 조정해야 합니다. 여기서 사용할 첫 번째 모듈은 "기술 통계"입니다. 사용 가능한 데이터에서 통계 데이터를 계산합니다. "Descriptive Statistics" 모듈 외에도 일반적으로 사용되는 모듈 중 하나는 "Clean Missing Data"입니다. 이 단계의 목적은 누락된(null) 값을 다른 값으로 바꾸거나 완전히 제거하여 의미를 부여하는 것입니다.
기능 정의
튜토리얼의 이 단계에서 적용된 또 다른 모듈은 "필터 기반 기능 선택" 모듈입니다. 이 모듈은 우리가 예측하려는 결과와 가장 관련이 있는 데이터 세트의 기능을 결정합니다. 이 경우 아래 그림에서 볼 수 있듯이 "E95" 값과 가장 관련성이 높은 네 가지 기능은 "EDG BS", "Oil", "USD/HRK" 및 "EUR/USD"입니다.
"EDG BS"는 예측에 사용할 수 없는 또 다른 "출력" 값이므로 나머지 중요한 기능(유가 및 USD/HRK 열 아래의 환율) 중에서 두 가지만 선택합니다.
처리 후 데이터 세트의 샘플은 다음과 같습니다.
알고리즘 선택 및 적용
다음 단계는 "Split" 모듈을 사용하여 사용 가능한 데이터를 분할하는 것입니다. 데이터의 첫 번째 부분(이 경우 80%)은 모델을 훈련하는 데 사용되고 나머지는 훈련된 모델의 점수를 매기는 데 사용됩니다.

다음 단계는 전체 Azure 기계 학습 프로세스에서 가장 중요한 단계입니다. 모듈 "Train Model"은 두 개의 입력 매개변수를 허용합니다. 첫 번째는 원시 훈련 데이터이고 다른 하나는 학습 알고리즘입니다. 여기서는 "Linear Regression" 알고리즘을 사용합니다. "모델 학습" 모듈의 출력은 "모델 점수" 모듈의 입력 매개변수 중 하나입니다. 다른 하나는 사용 가능한 나머지 데이터입니다. Score Model은 데이터세트에 Scored Labels라는 새 열을 추가합니다. 적용된 학습 알고리즘이 사용 가능한 데이터와 잘 작동할 때 "Scored Labels" 열 아래의 값은 해당 E95 값의 값에 더 가깝습니다.
Evaluate Model 모듈은 통계 값으로 표현된 훈련된 모델의 평가를 제공합니다. "결정 계수"를 보면 이 모델을 사용하여 정확한 가격을 예측할 확률이 약 80%라는 결론을 내릴 수 있습니다.
이제 "신경망 회귀" 모듈을 사용해 볼 가치가 있습니다. 새로운 "모델 학습" 및 "모델 평가" 모듈을 추가하고 출력을 기존 "모델 평가" 모듈에 연결해야 합니다.
"신경망 회귀" 모듈은 좀 더 많은 구성이 필요합니다. 이것은 전체 실험의 가장 중요한 모듈이기 때문에 전체로 적절한 학습 알고리즘의 설정과 선택을 조정하고 실험하면서 우리의 노력을 집중해야 하는 곳입니다.
이 경우 Evaluate 모듈은 훈련된 두 모델을 비교합니다. 다시 말하지만, 결정 계수를 기반으로 신경망이 약간 덜 정확한 예측을 제공한다는 것을 알 수 있습니다.
이 시점에서 나중에 사용할 수 있도록 선택한 훈련된 모델을 저장할 수 있습니다.
훈련된 모델이 있으면 "Scoring Experiment"를 생성할 수 있습니다. 이는 처음부터 새 실험을 만들거나 Azure Machine Learning Studio 도우미를 사용하여 수행할 수 있습니다. 훈련된 모델을 선택하고 "득점 실험 생성"을 클릭하기만 하면 됩니다. 여기서 필요한 새로운 모듈은 "웹 서비스 입력"과 "웹 서비스 출력"입니다. 입력 및 출력 값을 선택하기 위해 "Project Columns" 모듈을 추가합니다. 입력 값은 Oil 및 USD/HRK이며, 출력은 "Score Model" 출력의 "Scored Labels" 열 아래에 있는 예측 값입니다.
아래 그림은 이러한 몇 가지 조정 후와 그에 따라 "웹 서비스 입력" 및 "웹 서비스 출력" 모듈을 연결한 후의 채점 실험을 보여줍니다.
이 시점에서 또 다른 유용한 도우미 기능이 작동합니다. "웹 서비스 게시"를 사용하면 Azure의 클라우드 인프라에서 호스팅되는 간단한 웹 서비스를 만들 수 있습니다.
새로운 데이터 예측
마지막으로 간단한 테스트 양식을 사용하여 예측 웹 서비스를 테스트할 수 있습니다.
결론
이 간단한 기계 학습 자습서를 통해 완전한 기능의 예측 웹 서비스를 만드는 방법을 보여주었습니다. Azure 플랫폼에 통합된 Azure Machine Learning Studio는 데이터 실험을 생성하기 위한 매우 강력한 도구가 될 수 있습니다. Machine Learning Studio 외에도 Orange 및 Tiberious와 같은 다른 기계 학습 솔루션이 있습니다. 원하는 개발 환경에 관계없이 머신 러닝을 탐색하고 내면의 데이터 과학자를 찾는 것이 좋습니다.