编辑
2025-11-27
C#
00

项目概述

本文详细介绍如何使用ML.NET开发一个产品销售预测系统,实现对2024年销售量和收入的预测。该系统使用时间序列分析方法,基于历史数据进行未来销售趋势的预测。

技术栈选择

  • 开发语言:C# (.NET 8.0+)
  • 机器学习框架ML.NET 4.0.1
  • 算法选择:SSA (Singular Spectrum Analysis) 时间序列预测
  • 数据格式:CSV文件存储

系统架构设计

销售数据模型类

C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.ML.Data; namespace App16 { /// <summary> /// 销售数据模型类 /// </summary> public class SalesData { // 日期 [LoadColumn(0)] public string Date { get; set; } // 产品1的销售数量 [LoadColumn(1)] public float QP1 { get; set; } // 产品2的销售数量 [LoadColumn(2)] public float QP2 { get; set; } // 产品3的销售数量 [LoadColumn(3)] public float QP3 { get; set; } // 产品4的销售数量 [LoadColumn(4)] public float QP4 { get; set; } // 产品1的销售收入 [LoadColumn(5)] public float SP1 { get; set; } // 产品2的销售收入 [LoadColumn(6)] public float SP2 { get; set; } // 产品3的销售收入 [LoadColumn(7)] public float SP3 { get; set; } // 产品4的销售收入 [LoadColumn(8)] public float SP4 { get; set; } } }
编辑
2025-11-27
C#
00

项目概述

本项目使用ML.NET构建一个预测性维护系统,通过机器学习模型预测设备故障风险。

Nuget 安装包

C#
dotnet add package Microsoft.ML

image.png

SDCA(Stochastic Dual Coordinate Ascent)逻辑回归训练器

算法原理

SDCA(随机对偶坐标上升)算法

  • 一种凸优化算法
  • 专门用于处理大规模线性分类问题
  • 计算效率高,适合高维特征数据
编辑
2025-11-27
C#
00

本教程通过一个 C# 控制台应用示例,演示如何使用 ML.NET 对时序数据进行异常检测,帮助你在销售量等关键指标发生异常变化时及时捕捉峰值和更改点。

先决条件

  1. Visual Studio 2022(已安装 “.NET 桌面开发” 工作负载),或者你也可以使用 VS Code、JetBrains Rider 等编辑器,只要有 .NET 开发环境即可。
  2. 引用ML.NET
  3. 安装 .NET 6 SDK 或更高版本。
  4. 一份产品销售数据集(例如名为 statsfinal.csv 的文件),其中包含两列:
    • 日期(Date)
    • 销售量(Sales)

示例数据格式如下(仅节选):

DateSales
13-06-20105422
14-06-20107047
15-06-20101572
16-06-20105657
17-06-20103668
18-06-20102898

步骤 1:创建控制台应用程序

  1. 打开 Visual Studio,依次选择 “创建新项目” → “控制台应用程序”。
  2. 选择 “.NET 6” 作为目标框架。
  3. 依次单击 “下一步” → “创建” 即可完成项目创建。
  4. 在解决方案中创建一个 “Data” 文件夹,并将前述的 statsfinal.csv 文件放置于此。
编辑
2025-11-27
C#
00

本文介绍如何在 .NET 6 环境下使用 ML.NET 检测时序数据的周期和异常,并以电话呼叫量数据 (phone.csv) 为例进行完整演示。本教程针对已有 C# 基础并希望学习 ML.NET 的读者。让我们开始吧!


检测时序中的异常通常涉及以下基本原理

  1. 时序数据的特征:时序数据是按时间顺序排列的数据,通常包含时间戳和相应的数值。理解数据的基本特征(如趋势、季节性和周期性)是异常检测的第一步。
  2. 定义异常:异常通常被定义为与正常模式显著不同的数据点。这些异常可能是突发的(瞬时异常)或持续的(长期异常)。

前言和背景

时序数据中常见的需求之一就是检测“异常点”,例如在服务器访问量、传感器读数、电话呼叫量等数据中发现突然的异常值。这些异常点有可能是网络攻击、设备故障、或其他重要潜在事件。

ML.NET 提供了基于频谱残差 (SR) 和卷积神经网络 (CNN) 的 SR-CNN 算法,用于在时序中检测异常。此算法可以先帮我们自动检测周期,再评估剩余的部分是否存在异常点。

编辑
2025-11-27
Python
00

在Python开发的世界里,数据可视化是一项不可或缺的技能。无论你是在做数据分析、机器学习,还是开发Windows桌面应用的上位机系统,都需要将数据以图表形式直观展示给用户。

Matplotlib作为Python生态中最经典的绘图库,被誉为"Python可视化之父"。但对于初学者来说,面对Matplotlib复杂的API和概念,往往感到无从下手。本文将从实战角度出发,带你快速掌握Matplotlib的核心概念,并创建第一个专业级图表。

让我们一起解决"如何在Windows环境下快速上手Python数据可视化"这个关键问题!

🔍 问题分析:为什么选择Matplotlib?

市场地位与生态优势

Matplotlib在Python可视化领域拥有无可撼动的地位:

  • 生态完整:与NumPy、Pandas等核心库无缝集成
  • 功能强大:支持2D/3D图表、动画、交互式可视化
  • 社区活跃:拥有20年发展历史,文档和教程资源丰富
  • 跨平台兼容:在Windows、Linux、macOS上表现一致

实际应用场景

在Windows下的Python开发中,Matplotlib常用于:

  • 上位机软件的实时数据监控界面
  • 科学计算结果的可视化展示
  • 报表生成和数据分析报告
  • Web应用的图表生成