首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ML.net

如何使用ML.net
EN

Stack Overflow用户
提问于 2022-07-24 15:11:41
回答 1查看 113关注 0票数 0

我有这个:

代码语言:javascript
复制
    class SuggestedFeedBackPredition
    {

        [LoadColumn(0), ColumnName("Label")]
        public bool IsGood { get; set; }
    }

    public class SuggestedFeedbackTrainingData
    {
        [LoadColumn(1), ColumnName("SuggestedFeedBackText")]
        public string? SuggestedFeedBackText { get; set; }

        [LoadColumn(0), ColumnName("Label")]
        public bool IsGood { get; set; }

        public Single Score { get; set; }
        public Single Probability { get; set; }
        public Single PredictedLabel { get; set; }
    }

我有这个:

代码语言:javascript
复制
var mlContext = new MLContext();
        var mlData = mlContext.Data.LoadFromEnumerable<SuggestedFeedbackTrainingData>(suggestedFeedbackTrainingData());
        //var pipline = mlContext.Transforms.Text.FeaturizeText("Label", "Features");
        //var pipline = mlContext.Transforms.Text.FeaturizeText("Features", "SuggestedFeedbBackPridiction");
        //var pipline = mlContext.Transforms.CopyColumns(outputColumnName: "Features", inputColumnName: "SuggestedFeedBackText").Append(mlContext.Transforms.Concatenate("Label",
        //        "Label"));
        var dataProcessPipeline = mlContext.Transforms.Text.FeaturizeText("SuggestedFeedBackText");
        ITransformer model = dataProcessPipeline.Fit(mlData);
        //var dataview1 = mlContext.Data.LoadFromEnumerable<SuggestedFeedbackTrainingData>(testFeedbackTrainingData());
        //var predictions = model.Transform(dataview1);
        //var metrics = mlContext.BinaryClassification.Evaluate(predictions, "IsGood", "Score");

        var predictionsObj = mlContext.Model.CreatePredictionEngine<SuggestedFeedbackTrainingData, SuggestedFeedBackPredition>(model);
        var ff = new SuggestedFeedbackTrainingData();
        ff.SuggestedFeedBackText = text.word;
        var fff = predictionsObj.Predict(ff);
        var isGood = fff.IsGood;

在我的培训数据中:

代码语言:javascript
复制
public static List<SuggestedFeedbackTrainingData> suggestedFeedbackTrainingData()
    {
        List<SuggestedFeedbackTrainingData> sftd = new List<SuggestedFeedbackTrainingData>();

        sftd.Add(new SuggestedFeedbackTrainingData()
        {
            SuggestedFeedBackText = "great",
            IsGood = true
        });

        sftd.Add(new SuggestedFeedbackTrainingData()
        {
            SuggestedFeedBackText = "good",
            IsGood = true
        });

        sftd.Add(new SuggestedFeedbackTrainingData()
        {
            SuggestedFeedBackText = "bad",
            IsGood = false
        });

        sftd.Add(new SuggestedFeedbackTrainingData()
        {
            SuggestedFeedBackText = "nice",
            IsGood = true
        });

        return sftd;
    }

当我的输入是“这是好的”时,我一直将属性"IsGood“false的值返回"true”。

我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-28 21:16:26

有多种因素可能会影响您的模型的性能。下面是一些关于如何改进模型的指导。通常,这涉及使用更多(和代表性数据),尝试不同的算法,使用更多的列,等等。

https://learn.microsoft.com/dotnet/machine-learning/resources/improve-machine-learning-model-ml-net

因为这听起来像是刚刚开始,我建议在Visual中使用Model。它使用自动机器学习(,AutoML)帮助查找数据的“最佳”模型。不过,我要指出的是,AutoML不会帮助您克服没有足够代表性数据的问题。

https://dotnet.microsoft.com/learn/ml-dotnet/get-started-tutorial/data

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73099582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档