有可以做国外支付系统的网站吗,排名好的网站建设,企业资源计划系统,有没有网站是免费做店招图片的在上一篇文章中#xff0c;我们介绍了 .NET Interactive Notbook#xff0c;可以进行代码实时运行和交互式展示。这对于ML.NET来说非常棒#xff0c;可以运用到许多场景#xff0c;比如数据探索、绘制数据图表、编制教学课件等。下面#xff0c;我们就用出租车费预测… 在上一篇文章中我们介绍了 .NET Interactive Notbook可以进行代码实时运行和交互式展示。这对于ML.NET来说非常棒可以运用到许多场景比如数据探索、绘制数据图表、编制教学课件等。下面我们就用出租车费预测https://github.com/feiyun0112/machinelearning-samples.zh-cn/tree/master/samples/csharp/getting-started/Regression_TaxiFarePrediction来进行演示。1.创建Notebook首先VS Code需要安装“.NET Interactive Notebooks”扩展。新建文件编程语言选择“.NET Interactive”保存文件名后缀为“.ipynb”。添加Markdown标记说明一下这个机器学习任务要解决的问题场景。完成编辑后可以自动显示Markdown标记结果:2.安装Nuget包引用后面需要使用的NuGet包这里我们将使用ML.NET进行机器学习和XPlot绘制图表。运行代码下载和安装NuGet包。可以看到安装时间还是比较长的所以可以放在单独的代码块提前运行。3.定义DataStructures定义加载数据以及训练或预测时需要使用输入类和预测类代码如下 public class TaxiTrip
{[LoadColumn(0)]public string VendorId;[LoadColumn(1)]public string RateCode;[LoadColumn(2)]public float PassengerCount;[LoadColumn(3)]public float TripTime;[LoadColumn(4)]public float TripDistance;[LoadColumn(5)]public string PaymentType;[LoadColumn(6)]public float FareAmount;
}
4.加载数据加载训练和测试数据集文件放在Notebook同一目录下MLContext mlContext new MLContext(seed: 0);string TrainDataPath ./taxi-fare-train.csv;
string TestDataPath ./taxi-fare-test.csv;
IDataView baseTrainingDataView mlContext.Data.LoadFromTextFileTaxiTrip(TrainDataPath, hasHeader: true, separatorChar: ,);
IDataView testDataView mlContext.Data.LoadFromTextFileTaxiTrip(TestDataPath, hasHeader: true, separatorChar: ,);IDataView trainingDataView mlContext.Data.FilterRowsByColumn(baseTrainingDataView, nameof(TaxiTrip.FareAmount), lowerBound: 1, upperBound: 150);
display(h4(展示训练数据:));
var someRows mlContext.Data.CreateEnumerableTaxiTrip(trainingDataView, reuseRowObject: false).Take(4).ToArray();
display(someRows);
我们筛选了出租车票金额在1-150之间的数据作为训练数据并用内置函数display展示4行训练数据内容 5.图形化展示数据图形方式能让我们更好地理解数据,选取100条训练数据看看费用的分布情况var faresHistogram Chart.Plot(new Histogram() { x trainingDataView.GetColumnfloat(FareAmount).Take(100).ToArray(), autobinx false, nbinsx 20 });
var layout new Layout.Layout() { title 出租车费分布 };
faresHistogram.WithLayout(layout);
faresHistogram.WithXTitle(费用范围);
faresHistogram.WithYTitle(出行数);display(faresHistogram)
可以看到费用大多数在5-10之间 6.训练模型现在让我们真正开始执行机器学习。我们将首先处理数据转换然后添加训练器/算法最后训练模型。在执行窗口底部可以看到训练速度还是比较快的在我的机器上只需要1.7秒。7.评估模型我们需要这一步来总结我们的模型对新数据的准确性。为此上一步中的模型针对另一个未在训练中使用的数据集运行taxi-fare-test.csv。此数据集也包含已知的费用。Regression.Evaluate()计算已知费用和模型预测的费用之间差异的各种指标。IDataView predictions trainedModel.Transform(testDataView);
var metrics mlContext.Regression.Evaluate(predictions, labelColumnName: Label, scoreColumnName: Score);display(metrics)6.绘制对比图最后我们绘制预测与实际值的对比图。如果回归模型工作得很好那么这些点大部分应该是围绕着一条直线的这条直线就是回归线。回归线越接近“完美”预测值等于测试数据集中的实际值模型的质量就越好。结论后面的保存和使用模型我们就不再演示了请大家自行探索。通过上面的示例可以看到非常棒的交互体验。欢迎大家继续挖掘.NET Interactive的潜力玩转交互式机器学习欢迎关注我的个人公众号”My IO“