c# 线性回归和多项式拟合

1. 线性回归

公式: 线性回归的目标是拟合一条直线,形式为: y=mx+by=mx+b 其中:

  • yy 是因变量(目标值)
  • xx 是自变量(特征值)
  • mm 是斜率(slope)
  • bb 是截距(intercept)

优点:

  • 简单易懂
  • 计算效率高

缺点:

  • 只能拟合线性关系
  • 对于非线性关系的适应能力差

C# 线性回归示例代码

复制代码
using MathNet.Numerics;
using MathNet.Numerics.LinearRegression;

class Program
{
    static void Main()
    {
        double[] x = { 1, 2, 3, 4, 5 };
        double[] y = { 2, 4, 6, 8, 10 };

        // 进行线性回归
        var (slope, intercept) = SimpleRegression.Fit(x, y);

        Console.WriteLine($"拟合方程: y = {intercept} + {slope}x");
    }
}

2. 多项式拟合

公式: 多项式拟合的目标是拟合一个多项式,形式为: y=anxn+an−1xn−1+...+a1x+a0y=an​xn+an−1​xn−1+...+a1​x+a0​ 其中:

  • an,an−1,...,a0an,an−1,...,a0 是多项式的系数
  • nn 是多项式的最高次数

优点:

  • 能拟合更复杂的非线性关系
  • 通过增加多项式的次数,可以提高拟合的灵活性

缺点:

  • 过拟合的风险较高(尤其是在高次多项式时)
  • 计算复杂度较高

C# 多项式拟合示例代码

复制代码
using MathNet.Numerics;
using MathNet.Numerics.LinearRegression;

class Program
{
    static void Main()
    {
        double[] x = { 1, 2, 3, 4, 5 };
        double[] y = { 2, 3, 5, 7, 11 }; // 一组非线性数据

        // 进行多项式拟合,设定次数为2
        double[] coefficients = Fit.Polynomial(x, y, degree: 2);

        Console.WriteLine("拟合方程:");
        for (int i = coefficients.Length - 1; i >= 0; i--)
        {
            Console.WriteLine($"{coefficients[i]}x^{i}");
        }
    }
}

对比总结

特征 线性回归 多项式拟合
拟合形式 直线 y=mx+by=mx+b 多项式 y=anxn+...y=an​xn+...
优点 简单、快速 能拟合复杂非线性关系
缺点 只能处理线性关系 容易过拟合,计算复杂度高
适用场景 数据呈线性关系时 数据呈现非线性关系时
相关推荐
旖旎夜光4 小时前
LeetCode 991: 坏了的计算器(贪心算法) —— 题解
数据结构·c++·算法·leetcode·贪心算法
旖旎夜光4 小时前
LeetCode 553:最优除法(贪心算法) —— 题解
数据结构·c++·算法·leetcode·贪心算法
雾喔4 小时前
算法练习7
java·数据结构·算法
可编程芯片开发5 小时前
基于模糊PID控制的六步逆变器供电无刷直流电机调速simulink仿真
算法
imperialeast5 小时前
WinAXP音乐播放器8月4日更新
windows·算法·ui
ZhouDevin6 小时前
算法论文/模型微调1——CNN架构做lora微调训练
人工智能·深度学习·算法·架构·cnn
小月土星6 小时前
LeetCode 21. 合并两个有序链表 超详细题解(虚拟头结点 + 逐行代码拆解)
算法
oier_Asad.Chen6 小时前
【OI学习笔记】Floyed-Warshall算法解决传递闭包问题
c++·笔记·学习·算法·图论·最短路·传递闭包
国科安芯6 小时前
卫星星务计算机数据管理中SEU容错机制的技术实现研究——以AS32S601存储器ECC架构为例
网络·单片机·算法·fpga开发·架构·云计算·risc-v
孙启超6 小时前
【AI应用开发】Agent 无限 loop(反复调用同一个工具)如何规避?
人工智能·python·算法·llm·agent·loop·ai应用开发