728x90
반응형
728x170
▶ SourceModel.cs
using Microsoft.ML.Data;
namespace TestProject
{
/// <summary>
/// 소스 모델
/// </summary>
public class SourceModel
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 알코올 - Alcohol
/// <summary>
/// 알코올
/// </summary>
[LoadColumn(0)]
public float Alcohol { get; set; }
#endregion
#region 사과산 - MalicAcid
/// <summary>
/// 사과산
/// </summary>
[LoadColumn(1)]
public float MalicAcid { get; set; }
#endregion
#region 애쉬 - Ash
/// <summary>
/// 애쉬
/// </summary>
[LoadColumn(2)]
public float Ash { get; set; }
#endregion
#region 애쉬 알카니티 - AshAlcanity
/// <summary>
/// 애쉬 알카니티
/// </summary>
[LoadColumn(3)]
public float AshAlcanity { get; set; }
#endregion
#region 마그네슘 - Magnesium
/// <summary>
/// 마그네슘
/// </summary>
[LoadColumn(4)]
public float Magnesium { get; set; }
#endregion
#region 전체 페놀 - TotalPhenols
/// <summary>
/// 전체 페놀
/// </summary>
[LoadColumn(5)]
public float TotalPhenols { get; set; }
#endregion
#region 플라보노이드 - Flavanoids
/// <summary>
/// 플라보노이드
/// </summary>
[LoadColumn(6)]
public float Flavanoids { get; set; }
#endregion
#region 비 플라보노이드 페놀 - NonflavanoidPhenols
/// <summary>
/// 비 플라보노이드 페놀
/// </summary>
[LoadColumn(7)]
public float NonflavanoidPhenols { get; set; }
#endregion
#region 프로안토시아닌 - Proanthocyanins
/// <summary>
/// 프로안토시아닌
/// </summary>
[LoadColumn(8)]
public float Proanthocyanins { get; set; }
#endregion
#region 색상 강도 - ColorIntensity
/// <summary>
/// 색상 강도
/// </summary>
[LoadColumn(9)]
public float ColorIntensity { get; set; }
#endregion
#region 색조 - Hue
/// <summary>
/// 색조
/// </summary>
[LoadColumn(10)]
public float Hue { get; set; }
#endregion
#region OD280 - OD280
/// <summary>
/// OD280
/// </summary>
[LoadColumn(11)]
public float OD280 { get; set; }
#endregion
#region 프롤린 - Proline
/// <summary>
/// 프롤린
/// </summary>
[LoadColumn(12)]
public float Proline { get; set; }
#endregion
}
}
728x90
▶ TargetModel.cs
using Microsoft.ML.Data;
namespace TestProject
{
/// <summary>
/// 타겟 모델
/// </summary>
public class TargetModel
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region PredictedClusterID
/// <summary>
/// 예측 클러스터 ID
/// </summary>
[ColumnName("PredictedLabel")]
public uint PredictedClusterID;
#endregion
#region DistanceArray
/// <summary>
/// 거리 배열
/// </summary>
[ColumnName("Score")]
public float[] DistanceArray;
#endregion
}
}
300x250
▶ Program.cs
using System;
using System.Linq;
using Microsoft.ML;
using Microsoft.ML.Data;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
string dataFilePath = "wine-clustering.csv";
MLContext mlContext = new MLContext();
IDataView sourceDataView = mlContext.Data.LoadFromTextFile<SourceModel>(dataFilePath, hasHeader : true, separatorChar : ',');
string[] columnNameArray = sourceDataView.Schema.Select(column => column.Name).ToArray();
var data = mlContext.Data.TrainTestSplit(sourceDataView, testFraction : 0.2);
var pipeline = mlContext.Transforms.Concatenate("Feature", columnNameArray).Append(mlContext.Clustering.Trainers.KMeans("Feature", numberOfClusters : 3));
var model = pipeline.Fit(data.TrainSet);
IDataView testDataView = model.Transform(data.TestSet);
ClusteringMetrics metrics = mlContext.Clustering.Evaluate(testDataView, scoreColumnName : "Score", featureColumnName : "Feature");
PredictionEngine<SourceModel, TargetModel> predictionEngine = mlContext.Model.CreatePredictionEngine<SourceModel, TargetModel>(model);
TargetModel target = predictionEngine.Predict
(
new SourceModel()
{
Alcohol = 11,
Ash = 2.33f,
AshAlcanity = 3.21f,
ColorIntensity = 2.9f,
Flavanoids = 1.54f,
Hue = 1.55f,
Magnesium = 120,
MalicAcid = 1.44f,
NonflavanoidPhenols = 0.3f,
OD280 = 2.93f,
Proanthocyanins = 1.72f,
TotalPhenols = 3.86f,
Proline = 1300
}
);
Console.WriteLine($"예측 클러스터 ID : {target.PredictedClusterID}");
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > ML.NET' 카테고리의 다른 글
[C#/ML.NET] 누겟 설치 : Microsoft.ML.DataView (0) | 2022.05.27 |
---|---|
[C#/ML.NET] 누겟 설치 : Microsoft.ML.CpuMath (0) | 2022.05.27 |
[C#/ML.NET] 누겟 설치 : Microsoft.ML (0) | 2022.05.27 |
[C#/ML.NET/.NETCORE] 모델 빌더를 사용해 택시 요금 예측하기 (0) | 2021.09.30 |
[C#/ML.NET/.NET5] ONNX와 YOLOv5를 사용해 이미지 객체 인식하기 (0) | 2021.09.26 |
[C#/ML.NET] 다중 클래스 분류 모델 사용하기 (0) | 2019.06.27 |
[C#/ML.NET] 이진 클래스 분류 모델 사용하기 (0) | 2019.06.27 |
[C#/ML.NET] 선형 회귀 모델 사용하기 (0) | 2019.06.26 |
댓글을 달아 주세요