c# 分类 机器学习_听说你要用C#做机器学习

本文介绍了如何使用C#进行机器学习,特别是在Iris数据集上的分类任务。通过Microsoft.ML库,定义数据结构,加载数据,转换特征,训练StochasticDualCoordinateAscentClassifier分类器,并进行预测。最终,模型能够根据花的特征预测其类型。
摘要由CSDN通过智能技术生成

修改Program.cs内容

using Microsoft.ML;

using Microsoft.ML.Data;

using Microsoft.ML.Legacy;

using Microsoft.ML.Trainers;

using Microsoft.ML.Transforms;

using Microsoft.ML.Runtime.Api;

using Microsoft.ML.Legacy.Data;

using Microsoft.ML.Legacy.Trainers;

using Microsoft.ML.Legacy.Transforms;

using System;

using System.Threading;

namespace myApp

{

class Program

{

// 步骤 1: 定义数据结构

// IrisData 用于提供训练数据, 以及用于预测操作的输入。

// -前4属性是用于预测标签的输入/特征

// -标签是你所预测的, 只有在训练时才设定

public class IrisData

{

[Column("0")]

public float SepalLength;

[Column("1")]

public float SepalWidth;

[Column("2")]

public float PetalLength;

[Column("3")]

public float PetalWidth;

[Column("4")]

[ColumnName("Label")]

public string Label;

}

// IrisPrediction 是预测操作返回的结果

public class IrisPrediction

{

[ColumnName("PredictedLabel")]

public string PredictedLabels;

}

static void Main(string[] args)

{

// STEP 2: 创建类并加载数据

var pipeline = new LearningPipeline();

// 注意文件命名

string dataPath = "iris.data.txt";

pipeline.Add(new TextLoader(dataPath).CreateFrom(separator: ','));

//步骤 3: 转换数据

// 将数值分配给 "标签 " 列中的文本,

// 因为只有在模型训练过程中才能处理数字

pipeline.Add(new Dictionarizer("Label"));

// 将所有特征放入向量中

pipeline.Add(new ColumnConcatenator("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth"));

// 步骤 4: 添加学习者

// 向类中添加学习算法。这是一个分类场景 (这是什么类型?)

pipeline.Add(new StochasticDualCoordinateAscentClassifier());

// 将标签转换回原始文本 (在步骤3中转换为数字后)

pipeline.Add(new PredictedLabelColumnOriginalValueConverter() { PredictedLabelColumn = "PredictedLabel" });

// 步骤 5: 基于数据集对模型进行训练

var model = pipeline.Train();

// 步骤 6: 使用您的模型进行预测

// 您可以更改这些数字来测试不同的预测

var prediction = model.Predict(new IrisData()

{

SepalLength = 3.3f,

SepalWidth = 1.6f,

PetalLength = 0.2f,

PetalWidth = 5.1f,

});

Console.WriteLine($"Predicted flower type is: {prediction.PredictedLabels}");

Thread.Sleep(3000);

}

}

}

OK,执行它吧。

打印出超参数和结果

输出结果了呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值