C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > c# 线性回归

c# 线性回归和多项式拟合示例详解

作者:大黄鸭在发光

线性回归与多项式拟合是两种常用的回归分析方法,线性回归模型简单,易于计算,但只适用于线性关系的数据,多项式拟合能处理非线性数据,模型更复杂,拟合度更高,但容易产生过拟合问题,计算成本较高,适用场景不同,线性回归适合线性数据,多项式拟合适合非线性数据

1. 线性回归

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

优点:

缺点:

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​ 其中:

优点:

缺点:

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+...
优点简单、快速能拟合复杂非线性关系
缺点只能处理线性关系容易过拟合,计算复杂度高
适用场景数据呈线性关系时数据呈现非线性关系时

到此这篇关于c# 线性回归和多项式拟合示例详解的文章就介绍到这了,更多相关c# 线性回归内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文