郑州管城建设网站,wordpress模块管理系统,jsp做的网站后台信息,装修公司网站建设解决方案此前通过多篇文章已充分介绍过#xff0c;ML.NET是一个开源的跨平台机器学习框架#xff0c;特别适合 .NET 开发人员。它允许将机器学习集成到 .NET 应用中#xff0c;而无需离开 .NET 生态系统#xff0c;甚至拥有 ML 或数据科学背景。ML.NET 现有的各种内置模型训练器可用… 此前通过多篇文章已充分介绍过ML.NET是一个开源的跨平台机器学习框架特别适合 .NET 开发人员。它允许将机器学习集成到 .NET 应用中而无需离开 .NET 生态系统甚至拥有 ML 或数据科学背景。ML.NET 现有的各种内置模型训练器可用于图像检测、音频检测、基于文本的场景、情绪分析、销售预测、电影推荐、异常检测等等。随着 ML.NET 的普及越来越多的案例也证明了它走进了实际生产环境能够解决丰富的机器学习场景问题了。本文的案例来自 Chandra Kudumula 的工作分享Chandra Kudumula 是一名高级程序员兼分析师拥有超过十二年的 IT 经验。他成功地在金融、博彩和保险服务等多个领域设计并开发了各种高可扩展和高可用的企业应用程序。本文跳过机器学习基础知识和算法类型以一个控制台程序的完整代码编写过程为案例重点展示他如何使用 ML.NET 来预测保险价格。大多数传统保险公司是雇用精算师来计算保险费。精算师是商业专业人士他们使用数学和统计数据来评估财务损失的风险并根据年龄和性别等因素/特征预测保险费和索赔的可能性。它们通常会生成一种称为精算表的东西提供给保险公司的承保部门该部门通过输入条件数据来设置保险费。保险公司相当一部分工作是依赖专业人士计算和编写所有程序但使用机器学习变得更加简单。机器学习允许程序从一组数据中学习以找出特定的问题特征。ML 会关注性别、吸烟、儿童人数和地区等不同因素以找到总体最高的医疗费用并根据需求使用特定算法确定价格比如吸烟者和孩子较多的客户往往医疗费用较高因此这些群体的保费将更多。随着 ML 训练越来越多的数据ML 程序在预测确切价格方面变得更加聪明和敏感。最后您需要调用一个交互程序根据提供的输入因素为特定人员计算保险费而不需要自己编写所有这些程序。ML 程序查看提供的所有数据集以及训练学习最终将提供一个机器学习模型您可以在应用程序中使用。例如模型会认为保险价格取决于各种特征如年龄、保险类型、所需保险金额、性别、体重指数 BMI、地区以及吸烟等特殊因素如果您想要预测保险价格在应用程序中输入这些因素的值就能获得结果。机器学习工作流程ML 工作流有三个关键步骤准备数据。加载数据库或CSV文件的数据。提取/识别与您将要解决或预测结果的问题相关的关键特征输入和输出参数。构建和训练ML模型。在这里您可以评估不同的算法、设置参数并查看哪个模型最适合您的方案。模型准备好后请在应用程序中使用模型。 预测保险价格/保费的 ML.NET价格预测根据一些输入数据如年龄、性别、吸烟、体重指数 BMI、儿童数量和地区确定保险价格。价格预测是机器学习回归任务的一个例子该任务可以预测数字相关的问题。对保险费的预测如下。你有一些特征输入年龄性别吸烟等进入训练过程。这些特征可以确定溢价金额的高或低。例如年轻人不太可能需要医疗照顾所以他们的保费通常更便宜吸烟者的保费也更高。标签输出是您想要预测的价格这是调用机器学习模型的结果。下图是保险数据的示例该示例是模型的输入和输出如何开始与 ML.NET从 ML.NET 开始有三种方法API 模型您可以通过API开始 ML.NET并以 C# 或 F# 编写代码GUI 模型在 Visual Studio 中使用 ML.NET模型构建器。CLI 模型对于像 Mac 和 Linux 这样的跨平台开发请使用 ML.NET CLI。让我们开始以 API 模型使用 ML.NET 框架预测保险费。我使用 Visual Studio 2019 创建一个控制台应用程序。请确保您拥有最新版本的VS并且安装了 .NET 5 SDK。打开 Visual Studio 创建一个新项目-选择C#控制台应用程序。提供项目名称 从下拉中选择目标框架并按下创建按钮。 创建控制台应用程序。 需要ML模型的样本/测试保险数据。从 https://www.kaggle.com/mirichoi0218/insurance 下载insurance.csv文件数据并将文件复制到控制台项目中。您可以使用列标题年龄、性别、BMI 等查看数据并在打开文件时通过逗号将其分离。 从NuGet安装所需的ML包。在解决方案资源管理器中右键单击项目并选择Manage NuGet 包。 安装 Microsoft.ML 包。 还要安装Microsoft.ML.AutoML包。此包通过自动定位最佳功能工程、模型和超参数来优化数据集的 ML 管道。注意我使用此包来找出价格预测的最佳算法。如果您熟悉或决定转到特定算法则不需要此包。 添加代码已完成的Program.cs文件可以在这里找到。首先添加所需使用语句 添加ModelInput和ModelOutput类到Program.cs。该类包含与输入数据文件insurance.csv的标题匹配的属性。 在程序类中添加两个常数和 H。第一个包含数据集的路径后者包含在培训完成后保存模型的路径。TRAIN_DATA_FILEPATHMODEL_FILEPAT 创建实例是所有 ML.NET 操作的初始化步骤。它提供加载和准备数据、训练、评估和模型预测的所有所需组件。有一个可选参数称为种子。默认情况下种子值为空MLContext环境不确定输出会跨多个运行时变更。如果您提供固定数值则MLContext环境将保持变化是确定的结果在多个MLContext运行中是一致的。 创建MLContext实例后您需要使用此类加载数据以创建在数据、加载、保存、缓存、筛选、随机和拆分输入数据上的DataOperationsCatalog组件。但这不是模型训练管道的一部分。从CSV文件加载数据。提供所需的输入参数如 CSV 文件是否有标题、使用什么符号来分离数据等。 数据已加载但需要清理或转换模型可以理解的输入数据。 输入数据是分类数据。分类数据只不过是包含标签值的变量而不是数字值。输入数据性别和区域具有标签值您需要将其转换为数字值并且可能的值数通常仅限于固定集。例如区域数据只有两个值即东南或西北。此外吸烟者列包含是或否但这些数据需要转换为真或假。以下是使用TransformsCatalog转换吸烟者列和分类数据列的代码性别和区域。最后将所有输入列串联在一起。 ConversionTransforms提供操作列表将数据从一种类型转换为另一种类型。包括是对真否对假。Append通过将另一个估计器附加到此估计器的末尾创建一个新的估算链。CategoricalTransforms创建分类数据转换组件的实例您将使用它们转换分类数据如性别和区域。ColumnConcatenate这将将一个或多个输入列串联到新的输出列中。您需要在 AutoML 的帮助下找到性能最好的模型。以下是探索多个模型的代码。更长的训练时间使 AutoML 能够探索更多并为机器学习模型提供更高的精度。 运行实验运行实验后AutoML 探索了不同的模型。以下是显示评估模型并建议最佳模型的控制台输出窗口基于输入数据的价格预测的LightGbm 回归。 要打印平均指标添加此功能 构建模型现在我有最好的价格预测算法我会使用这个算法的代码并建立模型。以下是创建、训练、交叉验证和保存模型的代码片段。测试模型现在模型被创建、训练并保存到 Zip 文件中。通过传递样本数据测试训练好的模型。以下是使用预测引擎加载模型并预测结果的代码片段。 运行模型后以下是控制台窗口上的预测输出。 总结您已经看到使用 ML.NET 使用 API 框架进行价格预测是多么容易。同样您可以使用GUI模型构建器或CLI模型来获得相同的结果。引用https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnethttps://www.kaggle.com/mirichoi0218/insurancehttps://www.investopedia.com/ask/answers/09/calculating-premium.asphttps://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/https://github.com/jwood803/MLNetExamples/blob/master/MLNetExamples/AutoML/Program.cs