반응형
반응형

오늘은 C# ML.NET 머신러닝 중 회귀를 사용한 값 예측을 구현해보겠습니다. 먼저 ML.NET를 설치해주세요. ML.NET 설치 방법은 아래 글을 확인해주세요. 

 

 

C# ML.NET 사용한 머신 러닝 Data Classification

머신 러닝은 다양한 Open API를 사용해서 공부할 수 있습니다. 가장 많이 사용하는 언어는 Python입니다. Python은 머신 러닝을 하기 위해서는 좋은 선택이지만, 완전한 프로그램을 개발하기 위해서는

believecom.tistory.com

ML.NET 설치 상태에서 C# Console 빈 프로젝트를 생성합니다.

프로젝트 속성에서 마우스 우클릭 후 추가 메뉴를 선택하고 "Machine Learning Model"을 추가해주세요.

모델 이름은 클래스 형태로 구성되므로, 사용하기 편리한 이름으로 지정하면 됩니다.

mbconfig 파일을 생성하면 머신러닝 학습을 구성할 수 있습니다. 두 번째 내용인 값 예측을 선택합니다.

가장 먼저 ML.NET 머신러닝 환경을 선택합니다. 기본적으로 로컬을 선택하면 됩니다. 환경 선택 후 "다음 단계" 버튼을 클릭하고 데이터 추가 단계로 이동합니다. 데이터 단계에서는 기본 학습에 필요한 기본 데이터가 있어야 합니다.

 

 

자습서: 회귀를 사용하여 가격 예측 - ML.NET

이 자습서에서는 ML.NET을 사용하여 가격(특히, 뉴욕 시 택시 요금)을 예측하기 위한 회귀 모델을 빌드하는 방법에 대해 설명합니다.

docs.microsoft.com

microsoft.com 가격 예측 페이지로 이동해서 아래쪽으로 내려가면 데이터 준비 및 이해 아래쪽에 "taxi-fare-train.csv" 파일을 다운로드할 수 있습니다.

"taxi-fare-train.csv" 파일을 선택하면 GitHub로 이동 후 "Download"를 눌러주면 파일을 다운로드할 수 있습니다.

"taxi-fare-train.csv"를 선택하고 예측할 열(레이블)에서 "fare_amount"를 선택합니다.

고급 데이터 옵션을 사용해서 불필요한 여측 값을 제외할 수 있습니다.

이제 로드된 데이터를 사용해서 학습을 시작합니다. 학습 시간은 10분으로 설정하고 학습 시작 버튼을 클릭합니다.

회귀 분석이란 데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향을 이용한 통계학 기법입니다. 저장된 택시 비용을 통계학 기법을 적용해서 학습합니다.

10분 후 학습이 완료되었습니다. 최적 품질은 학습 시간에 따라서 변경됩니다.

평가 모델에서 예측 값을 입력하면 fare_amount 결과 값을 확인할 수 있습니다.

이제 사용하기 위해서 코드를 복사하거나, Add to solution 버튼을 클릭해서 솔루션에 새 프로젝트를 생성합니다.

신규로 생성된 프로젝트를 사용해서 컴파일이 가능합니다.

코드를 사용해서 직접 값 예측이 가능합니다.

using System;
using ConsoleApp1;

var sampleData = new MLModel.ModelInput()
{
    Vendor_id = @"CMT",
    Rate_code = 1F,
    Passenger_count = 1F,
    Trip_time_in_secs = 1271F,
    Trip_distance = 3.8F,
    Payment_type = @"CRD",
};

MLModel.ModelOutput result = MLModel.Predict(sampleData);

Console.WriteLine("예측 결과 요금 : {0} ",result.Score);

ModelInput를 사용해서 학습 데이터를 생성하고 ModelOutput을 사용해서 결과를 예측할 수 있습니다.

반환된 결과는 Score를 사용해서 확인이 가능합니다.

ML.NET 회귀를 사용한 값 예측 방법은 다양한 회귀모델을 구현할 수 있어 머신러닝에 기초로 사용하기 매우 편리합니다. 기본적으로 데이터를 선 분석해서 사용하기 때문에 누구나 쉽게 머신러닝을 접근할 수 있는 좋은 개발 형태입니다. 머신러닝에 관심 있고 코딩을 잘 모른다면 C# ML.NET를 이용한 머신러닝 공부 지금 시작하세요.

감사합니다.

반응형
반응형

머신 러닝은 다양한 Open API를 사용해서 공부할 수 있습니다. 가장 많이 사용하는 언어는 Python입니다. Python은 머신 러닝을 하기 위해서는 좋은 선택이지만, 완전한 프로그램을 개발하기 위해서는 타 언어와 연동이 필요합니다. 오늘은 머신 러닝 및 프로그램 UI까지 쉽게 개발 가능한 ML.NET 머신 러닝 기본을 공부해보겠습니다.

ML.NET은 .NET Core를 사용하여 Windows, Linux 및 macOS에서 실행되거나 .NET Framework를 사용하여 Windows를 실행됩니다. 기본적으로 C#문법을 사용해서 컴파일 가능합니다.

ML.NET의 핵심은 기계 학습 모델입니다. ML.NET를 사용하기 위해서 먼저 Visual studio 2022 설치 후 .NET 데스크톱 개발 항목에서 ML.NET Model Builder를 체크해야 합니다.

https://dotnet.microsoft.com/en-us/learn/ml-dotnet/get-started-tutorial/intro

 

ML.NET Tutorial | Get started in 10 minutes | .NET

Step-by-step instructions for building a simple prediction model with ML.NET on Windows, Linux, or macOS. ML.NET is a machine learning framework for .NET.

dotnet.microsoft.com

간단하게 개발하기 위해서 콘솔 앱을 선택하고 프로젝트를 생성해주세요.

생성된 프로젝트에서 마우스 우클릭을 실행하고, 추가 항목에서 Machine Learning Model을 클릭 후 mbconfig파일을 생성합니다.

도움말 서비스가 실행되면서 사용자 데이터 학습 옵션을 확인할 수 있습니다. 이번 시간에는 부정적 감성을 인지하는 예측 모델을 만들어보겠습니다. Data Classification을 선택해주세요.

환경은 로컬을 선택하면 됩니다. 

데이터를 학습하기 위해서 기본 예측 데이터를 위 사이트에서 다운로드해주세요.

압축을 해제하면 텍스트 정보를 확인할 수 있습니다.

압축 폴더에서 yelp_lebelled.txt를 선택하고, 예측할 열을 col1로 설정하면 데이터를 미리 볼 수 있습니다.

이제 학습 단계로 이동해서 학습 시간을 60초로 선택하고 학습을 시작해주세요. 60초 정도 학습하게 되면 최적 정확도가 80.28%나옵니다.

학습 시간이 길어지면 최적 정확도가 높아집니다. 학습 데이터가 1GB 이상일 경우는 3시간 이상 학습이 필요합니다.

학습이 완료되면 col0 값을 입력 후 예측하면 결과를 확인할 수 있습니다. 1은 긍정적인 값이고, 0은 부정적인 값입니다. 

"Wow Loved This place"를 입력하면 92% 긍정적으로 판단됩니다.

예측까지 완료되면 모델이 압축되어 컴파일 위치에 저장됩니다. 이제 사용하기 위해서 코드를 복사하거나, 아래 항목에서 "Add to solution"을 선택하면 프로젝트가 추가됩니다.

추가된 프로젝트를 컴파일하면 정상적으로 확인됩니다.

기존 프로그램에 모델을 적용하기 위해서 생성한 모델을 참조하고 Col0 정보에 예측 정보를 입력해주세요.

컴파일 결과 "This restaurant was wonderful." 문장은 96.75%로 긍정인 것을 확인할 수 있습니다.

ML.NET는 무료 Visual Studio를 사용해서 간단하게 학습 후 모델을 사용할 수 있는 프레임워크입니다. 머신 러닝에 관심 있다면 간단하게 테스트할 수 있는 ML.NET 한번 설치해보세요.

감사합니다.

반응형

+ Recent posts