AI/ML.NET
-
ML.NET MSSQL 연동 [5]AI/ML.NET 2020. 12. 1. 18:04
ML.NET 을 건드린지 1주가 지났는데 아직 자동화 밖에 쓰질 못하겠다. 그래서 자동화로 생성된 코드들을 보기로 했다. 시나리오를 선택하고 환경 선택하고 데이터를 선택하고 학습을 하면 가장 정확도가 높은 알고리즘을 찾아준다. 학습시간이 길 수록 정확도가 높아지지만 적은 데이터를 무작정 길게 학습한다고해서 더욱더 좋아지지는 않는다. LightGbmRegression이 제일 높은 정확도를 가진것으로 결과가 나왔다. 이 상태로 코드에서 프로젝트추가를 하면 이렇게 코드가 추가되고 샘프로 코드가 주어진다. 그럼 생성된 프로젝트로 들어가보자. ConsoleApp에 들어가보면 ModelBuilder 클래스가 있다. 여기에서 학습시킨 후에 선택된 알고리즘 LightGbmRegression를 사용해서 모델을 생성하는 ..
-
ML.NET MSSQL 연동 [4]AI/ML.NET 2020. 11. 24. 14:15
찾기가 너무 힘들어서 예제를 찾아보았다. 예제코드에 보기 좋게 설명을 달아 놓았다. 따로따로 보기가 너무 불편해서... 이렇게 보니 금방 이해가 된다. 문제는 파이프라인을 정의 하여 모델을 만들때 사용하는 부분에서 mlContext의 종속 메서드들의 정의가 필요할 것 같다. public MLContext (int? seed = default); 이렇게 정의 되는데 seed 값이 무엇을 의미하는지 알아야 할 것 같았다. MS-DOC에는 아래와 같이 설명되어 있다. seed값에 따라서 모델의 일관성유지가 된다는 소리 같은데 null을 보통 사용해도 상관없을 듯 싶다. 특별한 경우가 아니라면... 더보기 ML.NET 많은 작업은 무작위 데이터 셔플, 무작위 샘플링, 무작위 매개 변수 초기화, 무작위 순열, 무..
-
ML.NET MSSQL 연동 [3]AI/ML.NET 2020. 11. 23. 18:21
앞 포스트에 이어서 일단 간단하게 폼을 하나 만들고 입력, 출력 클래스를 만들어주고 public class Data { public float A { get; set; } public float Target { get; set; } } public class Prediction { [ColumnName("Target")] public float Target { get; set; } } 버튼에 이벤트를 주었다. private void button1_Click(object sender, EventArgs e) { try { //Import or create training data MLContext mlContext = new MLContext(); DatabaseLoader loader = mlContex..
-
ML .NET MSSQL 연동 [2]AI/ML.NET 2020. 11. 23. 17:07
데이터베이스에서 데이터를 가져와서 학습모델을 만들고자 할때 보통 ML예제를 보면 전부 File에서 가져오는 예제들이다. 데이터베이스를 바로 연동하고 그후 데이터 준비 및 알고리즘 선택은 같게 움직인다. 일단 데이터베이스 연동 부분만 추가 하도록 한다. string rootDir = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../")); string dbFilePath = Path.Combine(rootDir, "Data", "DailyDemand.mdf"); string modelPath = Path.Combine(rootDir, "MLModel.zip"); var connectionString = $"Data..
-
ML.NET 사용 선형회귀분석 [1]AI/ML.NET 2020. 11. 20. 18:51
Viusal Studio 2019에 .NET Core 관련 설치를 하면 ME.NET Core가 같이 설치 된다. 프로젝트 생성후 추가에 Machine Learning 을 선택한다. 나에게 맞는 시나리오를 선택한다. 시나리오에 따라서 학습모델이 자동으로 선정된다. 각 시나리오에 대한 대략적인 설명이 되어 있으며 MS Doc에 조금 더 자세히 기술되어 있다. 별로 그렇게 자세하지는 않다. 아직은.... 앞서 공부한 선형회귀분석을 비교해 볼 것이므로 값 예측 시나리오를 선택하도록 하겠다. 값 예측 시나리오는 로컬ML이라고 되어 있다. 학습을 로컬에서 진행한다는 뜻이다. 로컬컴퓨터의 자원이 좋아야 학습속도가 빨라진다. 다음으로 데이터가 필요하다. 강화학습이 아니므로 머신러닝에서 데이터는 필수이다. 앞 포스트에서..