当前位置:首页 > JavaScript

用js实现线性回归

2026-04-04 19:43:30JavaScript

实现线性回归的基本步骤

线性回归是用于建模两个变量之间线性关系的统计方法。在JavaScript中可以通过以下方式实现:

准备数据

假设有一组输入特征x和对应的目标值y

const x = [1, 2, 3, 4, 5];
const y = [2, 4, 5, 4, 5];

计算均值

计算x和y的均值:

const mean = arr => arr.reduce((a, b) => a + b) / arr.length;
const xMean = mean(x);
const yMean = mean(y);

计算斜率和截距

使用最小二乘法计算回归系数:

let numerator = 0;
let denominator = 0;

for (let i = 0; i < x.length; i++) {
    numerator += (x[i] - xMean) * (y[i] - yMean);
    denominator += Math.pow(x[i] - xMean, 2);
}

const slope = numerator / denominator;
const intercept = yMean - slope * xMean;

预测函数

创建预测新值的函数:

function predict(x) {
    return slope * x + intercept;
}

完整代码示例

function linearRegression(x, y) {
    const mean = arr => arr.reduce((a, b) => a + b) / arr.length;
    const xMean = mean(x);
    const yMean = mean(y);

    let numerator = 0;
    let denominator = 0;

    for (let i = 0; i < x.length; i++) {
        numerator += (x[i] - xMean) * (y[i] - yMean);
        denominator += Math.pow(x[i] - xMean, 2);
    }

    const slope = numerator / denominator;
    const intercept = yMean - slope * xMean;

    return {
        slope,
        intercept,
        predict: x => slope * x + intercept
    };
}

// 使用示例
const model = linearRegression([1,2,3,4,5], [2,4,5,4,5]);
console.log(model.predict(6));  // 预测x=6时的y值

使用库实现

对于更复杂的应用,可以使用现成的库如ml-regression

用js实现线性回归

const { LinearRegression } = require('ml-regression');

const x = [1, 2, 3, 4, 5];
const y = [2, 4, 5, 4, 5];

const regression = new LinearRegression(x, y);
console.log(regression.predict(6));  // 预测结果

注意事项

  • 确保输入数据是数值类型
  • 数据点数量应足够以获得可靠结果
  • 检查分母不为零的情况

标签: 线性js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…