Image
Image

ML.NET을 활용한 머신러닝 모델 개발환경 구축 및 심플 프로젝트 개발하기

안녕하세요. 
타임투데브 운영 및 Korea ML.NET User Group 운영자 강창훈입니다. 
오늘은 ML.NET Study 1회차 모임주제인 ML.NET에 대해 알아보기 전에 현재시점 .NET 기술  최신 트렌드 및  ML/AI분야 관련 기술정보를 알아보고 
ML.NET이 무엇인지와 개발환경구축 방법 및 샘플 프로젝트를 직접 개발해보면서 관련  기술에 대해 알아보도록 하겠습니다.

하기 내용은 ML.NET STUDY 1회모임을 위한 사전 조사자료로 개인적으로 작성하여 먼저 공유드리는 자료입니다. 

1. 최신 .NET 기술 트렌드 분석

.NET 기술 핵심 트렌드를  2019년 05월 기준으로 조사한 내용을 먼저 공유드립니다.
- Now, .NET is Free &  Cross-platform Open source Framework.



ㅁWhat is .NET?

https://dotnet.microsoft.com/learn/dotnet/what-is-dotnet

ㅁ현재 .NET Framework의 종류
ㄴ.NET Core / .NET Framework / Xamarin/Mono 

ㅁ최근 .NET 핵심 기술
ㄴ.NET Core & ASP.NET Core, 
ㄴXamarin Cross Platfrom Native App 개발기술
ㄴML.NET 
ㄴ.NET Standard : 각종 .NET Framework의 차세대 기능 통합버전

ㅁ.NET 지원 개발언어 
ㄴC#,F#,Visual Basic.NET

ㅁ.NET Architecture Guide 문서 링크
ㄴhttps://dotnet.microsoft.com/learn/dotnet/architecture-guides

ㅁ.NET Docs 사용자 매뉴얼 
ㄴhttps://docs.microsoft.com/ko-kr/dotnet/


ㅁ기타참고링크
https://dotnet.microsoft.com/
https://docs.microsoft.com/ko-kr/dotnet/index


2. .NET 기반 최신  Machine Learning & AI 기술 소개

ㅁ참고사이트
https://dotnet.microsoft.com/apps/machinelearning-ai
https://docs.microsoft.com/ko-kr/dotnet/machine-learning/tutorials/


ㅁML.NET
ㄴML.NET은 .NET개발자들을 위한  무료,크로스플랫폼,오픈소스 머신러닝 개발 프레임워크.
https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet


ㅁ.NET for Apache Spark
ㄴApache Spark는 대용량 데이터 세트 (일반적으로 테라 바이트 또는 페타 바이트 급 데이터)에서 작동하는 범용 분산 데이터 분석 엔진입니다.
ㄴApache Spark 용 .NET은 C # 및 F #에서 Apache Spark를 사용하기위한 API를 제공합니다.
https://dotnet.microsoft.com/apps/data/spark
ㄴAzure Databricks : Azure 기반 Apache Spark 기반 데이터 분석 플랫폼


ㅁCognitive Services

-Azure 클라우드기반 각종 인공지능 서비스를 쉽고 활용할수 있게해주는 인공지능 활용서비스
https://azure.microsoft.com/ko-kr/services/cognitive-services/


ㅁAzure Machine Learning Service 
ㄴAzure Machine Learning Service
ㄴAzure Machine Learning Studio
https://azure.microsoft.com/ko-kr/services/machine-learning-service/


ㅁF# for Data Science and ML
ㄴF# 은 .NET에서 실행되는 객체 지향 프로그래밍을 지원하는 함수형 프로그래밍 언어입니다.
ㄴF#을 이용한 데이터분석 및 머신러닝이 가능합니다.
https://dotnet.microsoft.com/learn/languages/fsharp-hello-world-tutorial/intro


3.ML.NET?

-ML.NET은 .NET개발자들을 위한  무료,크로스플랫폼,오픈소스 머신러닝 개발 프레임워크.
-.NET 및 C # 또는 F # 기술을 사용하여 기계 학습 모델을 개발하거나 튜닝하는 사전 지식없이 응용 프로그램에  맞춤형 기계 학습을 손쉽게 통합할수 있다.
-ML.NET은 오픈 소스이며 Windows, Linux 및 MacOS에서 실행됩니다.
-ML.NET은 원래 Microsoft Research에서 개발되었으며 지난 10 년 동안 중요한 프레임 워크로 발전했으며 Windows, Bing, PowerPoint, Excel 등과 같은 Microsoft의 많은 제품 그룹에서 사용되었습니다.
-ML.NET은 분류 (예 : 지원 텍스트 분류, 감정 분석) 및 회귀 (예 : 가격 예측)와 같은 기계 학습 작업을 가능하게합니다.
-이러한 ML 기능과 함께 ML.NET의 첫 번째 릴리스는 학습 알고리즘, 변환 및 ML 데이터와 같은이 프레임 워크의 핵심 구성 요소뿐만 아니라 예측 모델을 사용하여 학습 모델 용 .NET API의 첫 번째 초안을 제공하고 있습니다. 
-아직 공식 릴리즈 버전은 배포되지 않았으며 현재 개발진행중입니다.
ㄴhttps://github.com/dotnet/machinelearning



ㅁML.NET 소개 사이트

https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet
https://dotnet.microsoft.com/learn/machinelearning-ai/what-is-mldotnet


ㅁML.NET 개발 참고사이트
Github : https://github.com/dotnet/machinelearning
MS Learn : https://dotnet.microsoft.com/learn/machinelearning-ai/ml-dotnet-get-started-tutorial/intro 
MS Docs : https://docs.microsoft.com/ko-kr/dotnet/machine-learning/
Examples: https://docs.microsoft.com/ko-kr/dotnet/machine-learning/tutorials/taxi-fare


4. 10분만에 경험해보는 ML.NET 머신러닝 모델 개발하기 튜토리얼 
https://dotnet.microsoft.com/learn/machinelearning-ai/ml-dotnet-get-started-tutorial/intro


Mission :
꽃잎 길이를 이용한 붓꽃의 종류를 예측하는 머신러닝모델 개발하기 



Step1) .NET Core  SDK 2.2.203 다운로드 설치하기(2019년 05월  02일기준)
-***이미 Visual Studio 2017이 설치되신분들은 .NET Core  SDK 2.2.203를 설치하지마세요. ***

https://download.visualstudio.microsoft.com/download/pr/b5b2c515-9909-4912-9631-b5b8adeaac1f/e44d9456a5ffb5d325f361f3babc67c0/dotnet-sdk-2.2.203-win-gs-x64.exe



Step2) .NET Core 버전 확인하기
- Command창을 오픈하고 dontnet 명령어를 쳐본다. 관련명령어를 파악한다.
C:\Users\eddy>dotnet --list-sdks

2.1.202 [C:\Program Files\dotnet\sdk]

2.1.504 [C:\Program Files\dotnet\sdk]

2.2.106 : Visual Studio 2017용 & Visual Studio for MAC

2.2.203 [C:\Program Files\dotnet\sdk]  - Visual Studio 2019용



Step3) 머신러닝 콘솔 어플리케이션 만들기


1)Command를 이용한 방법

dotnet new console -o myMLApp

cd myMLApp

...가이드대로 진행..하면되지만.....

...이하 Visual Studio 2017 IDE기준으로 설명드립니다.


2)Visual Studio 2017 IDE 를 이용하는 방법

ㅁ사전조건

-.NET Core 2.1 이상 설치된 환경

-.NET Framework 4.6.1 이상 설치된 환경

ㅁVisual Studio 2017/2019 최신 지원버전 정보확인 : 

ㄴ.NET Core 2.2(2.2.106) (dotnet-sdk-2.2.106-win-x64) for visual studio 2017 

ㄴ.NET Core 3.0( 2.2.203) : Visual Studio 2019 SDK


-새프로젝트>C#>ASP.NET CORE > Console 프로젝트 선택 생성



Visual Studio와 .NET CORE 사용에 대해 익숙치 않으신분들을 위해 몇가지 TIP을 제공드립니다.

Tip&Tech) Visual Studio 2017에서 .NET Core 버전 빌드 문제 발생시  주의사항

Tip1) Visual Studio 2017과 2019 지원  .NET Core SDK버전이 다르다.

.NET Core  SDK 2.2.203은 Command를 이용한 프로젝트 생성 및 빌드/사용은 가능하나

Visual Studio를 이용하는 경우 Visual Studio 2019만 지원된다. 

Visual Studio 2017 IDE기반으로 Console,ASP.NET Core 프로젝트 개발하는 경우 .NET Core  SDK 2.2.203를 설치하면 안되고 

dotnet-sdk-2.2.106 최신버전을 설치하고 사용하세요.


ㅁVisual Studio 개발툴 .NET CORE SDK 버전지원정보참고 

https://dotnet.microsoft.com/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral


Tip2) Visual Studio 2017에서 .NET Core 버전 빌드 에러나는경우 아래 링크 참조바람.

https://devblogs.microsoft.com/dotnet/net-core-tooling-update-for-visual-studio-2017-version-15-9/

Visual Studio의 안정적인 릴리스의 경우 이제 도구는 컴퓨터에 설치된 최신 안정 버전의 SDK 만 사용하도록 기본 설정됩니다. 미리보기 SDK를 설치하면 도구가 기본적으로 미리보기 SDK를 사용하지 않습니다. 도구> 옵션> 프로젝트 및 솔루션> .NET Core :에서 이 설정을 변경할 수 있습니다.



Tip3) .NET CORE SDK 삭제하기

-윈도우 프로그램추가/삭제에서 설치 SDK 선택 삭제함



STEP4) ML.NET ver 1.0 NugetPackage 다운로드 설치하기



STEP5) 테스트 데이터 파일 및 소스 복사 붙여넣기






STEP6) 콘솔프로젝트 디버깅 및 샘플소스 예측결과 확인하기




샘플 프로젝트를 대로 진행해보면 정상적으로 머신러닝 분석모델이 잘 동작하는것을 확인해볼수 있습니다. 

감사합니다.

Image

댓글목록

  • Image

    TzwSVsOw 2024.04.21


  • Image

    TzwSVsOw 2024.04.21

    1

  • Image

    TzwSVsOw 2024.04.21

    1

  • Image

    TzwSVsOw 2024.04.21

    1

  • Image

    TzwSVsOw 2024.04.21

    1

  • Image

    TzwSVsOw 2024.04.21

    1

  • Image

    TzwSVsOw 2024.04.21

    1

  • Image

    TzwSVsOw 2024.04.21

    1

  • Image

    TzwSVsOw 2024.04.21

    1

  • Image

    TzwSVsOw 2024.04.21

    @@8HL5m

  • Image

    TzwSVsOw 2024.04.21

    1����%2527%2522

  • Image

    TzwSVsOw 2024.04.21

    1'"

  • Image

    TzwSVsOw 2024.04.21


    '||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  • Image

    TzwSVsOw 2024.04.21


    *DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

  • Image

    TzwSVsOw 2024.04.21

    mIxIfsnX')) OR 157=(SELECT 157 FROM PG_SLEEP(15))--

  • Image

    TzwSVsOw 2024.04.21

    NYlLxXFG') OR 153=(SELECT 153 FROM PG_SLEEP(15))--

  • Image

    TzwSVsOw 2024.04.21

    Cy3wtMgF' OR 327=(SELECT 327 FROM PG_SLEEP(15))--

  • Image

    TzwSVsOw 2024.04.21

    -1)) OR 848=(SELECT 848 FROM PG_SLEEP(15))--

  • Image

    TzwSVsOw 2024.04.21

    -5) OR 254=(SELECT 254 FROM PG_SLEEP(15))--

  • Image

    TzwSVsOw 2024.04.21

    -5 OR 993=(SELECT 993 FROM PG_SLEEP(15))--

  • Image

    TzwSVsOw 2024.04.21

    J4QOaNDB')); waitfor delay '0:0:15' --

  • Image

    TzwSVsOw 2024.04.21

    DdsgH317'); waitfor delay '0:0:15' --

  • Image

    TzwSVsOw 2024.04.21

    e9zNmr81'; waitfor delay '0:0:15' --

  • Image

    TzwSVsOw 2024.04.21

    1 waitfor delay '0:0:15' --

Image