#线性回归 #平方 #数据 #stdlib #元组 #计算 #维度的

linreg

计算二维数据的线性回归。不使用 stdlib,仅依赖于数值特性。

4 个版本

0.2.0 2019 年 12 月 8 日
0.1.3 2018 年 6 月 9 日
0.1.2 2018 年 6 月 9 日
0.1.1 2018 年 6 月 9 日

#1345算法

Download history 2106/week @ 2024-03-14 1750/week @ 2024-03-21 1348/week @ 2024-03-28 2031/week @ 2024-04-04 1788/week @ 2024-04-11 2350/week @ 2024-04-18 2207/week @ 2024-04-25 1781/week @ 2024-05-02 1743/week @ 2024-05-09 2015/week @ 2024-05-16 1911/week @ 2024-05-23 1098/week @ 2024-05-30 1529/week @ 2024-06-06 1130/week @ 2024-06-13 1674/week @ 2024-06-20 1556/week @ 2024-06-27

6,183 每月下载次数
用于 12 个crate(9 个直接使用)

MIT 许可证

13KB
209 代码行

linreg-rs

linreg 是一个小型的crate,用于计算线性回归。它不使用 stdlib 或内存分配,依赖性很少。示例

let xs: Vec<f64> = vec![1.0, 2.0, 3.0, 4.0, 5.0];
let ys: Vec<f64> = vec![2.0, 4.0, 5.0, 4.0, 5.0];

assert_eq!(Some((0.6, 2.2)), linear_regression(&xs, &ys));

它支持元组、分别为 x 和 y 值的独立向量以及模板浮点类型。


lib.rs:

线性回归

linreg 计算二维测量的线性回归,也称为 简单线性回归

线性回归的所有计算都基于 https://en.wikipedia.org/wiki/Ordinary_least_squares#Simple_linear_regression_model 中找到的简单模型。

示例使用

   use linreg::{linear_regression, linear_regression_of};

   // Example 1: x and y values stored in two different vectors
   let xs: Vec<f64> = vec![1.0, 2.0, 3.0, 4.0, 5.0];
   let ys: Vec<f64> = vec![2.0, 4.0, 5.0, 4.0, 5.0];

   assert_eq!(Ok((0.6, 2.2)), linear_regression(&xs, &ys));


   // Example 2: x and y values stored as tuples
   let tuples: Vec<(f32, f32)> = vec![(1.0, 2.0),
                                      (2.0, 4.0),
                                      (3.0, 5.0),
                                      (4.0, 4.0),
                                      (5.0, 5.0)];

   assert_eq!(Ok((0.6, 2.2)), linear_regression_of(&tuples));


   // Example 3: directly operating on integer (converted to float as required)
   let xs: Vec<u8> = vec![1, 2, 3, 4, 5];
   let ys: Vec<u8> = vec![2, 4, 5, 4, 5];

   assert_eq!(Ok((0.6, 2.2)), linear_regression(&xs, &ys));

依赖关系

~1.5MB
~38K SLoC