博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linear Regression Using Least Squares Method 代码实现
阅读量:6526 次
发布时间:2019-06-24

本文共 1509 字,大约阅读时间需要 5 分钟。

1. 原理

 

2. Octave

function theta = leastSquaresMethod(X, y)    theta = pinv(X' * X) * X' * y;

 

3. Python

# -*- coding:utf8 -*-import numpy as npdef lse(input_X, _y):    """    least squares method    :param input_X: np.matrix input X    :param _y: np.matrix y    """    return (input_X.T * input_X).I * input_X.T * _ydef test():    """    test    :return: None    """    m = np.loadtxt('linear_regression_using_gradient_descent.csv', delimiter=',')    input_X, y = np.asmatrix(m[:, :-1]), np.asmatrix(m[:, -1]).T    final_theta = lse(input_X, y)    t1, t2, t3 = np.array(final_theta).reshape(-1,).tolist()    print('对测试数据 y = 2 - 4x + 2x^2 求得的参数为: %.3f, %.3f, %.3f\n' % (t1, t2, t3))if __name__ == "__main__":    test()

 

4. C++

#include 
#include
using namespace std;using namespace Eigen;MatrixXd les(MatrixXd &input_X, MatrixXd &y) { return (input_X.transpose() * input_X).inverse() * input_X.transpose() * y;}void generate_data(MatrixXd &input_X, MatrixXd &y) { ArrayXd v = ArrayXd::LinSpaced(50, 0, 2); input_X.col(0) = VectorXd::Constant(50, 1, 1); input_X.col(1) = v.matrix(); input_X.col(2) = v.square().matrix(); y.col(0) = 2 * input_X.col(0) - 4 * input_X.col(1) + 2 * input_X.col(2); y.col(0) += VectorXd::Random(50) / 25; }int main() { MatrixXd input_X(50, 3), y(50, 1); generate_data(input_X, y); cout << "对测试数据 y = 2 - 4x + 2x^2 求得的参数为: " << les(input_X, y).transpose() << endl;}

 

转载于:https://www.cnblogs.com/senjougahara/p/7655911.html

你可能感兴趣的文章
Atitit 软件工程概览attilax总结
查看>>
优化LibreOffice如此简单
查看>>
【Oracle 数据迁移】环境oracle 11gR2,exp无法导出空表的表结构【转载】
查看>>
秒杀系统设计方案
查看>>
3D印花芭蕾舞鞋为舞者科学地保护双脚
查看>>
冲浪科技获Ventech China数百万美元天使轮融资,发力自动驾驶行业
查看>>
通过ActionTrail监控AccessKey的使用
查看>>
从 JavaScript 到 TypeScript
查看>>
一个mysql复制中断的案例
查看>>
【最佳实践】OSS开源工具ossutil-大文件断点续传
查看>>
Linux常用的服务器构建
查看>>
深入了解 Weex
查看>>
Android第三方开源FloatingActionButton(com.getbase.floatingactionbutton)【1】
查看>>
【75位联合作者Nature重磅】AI药神:机器学习模型有望提前五年预测白血病!
查看>>
精通SpringBoot——第二篇:视图解析器,静态资源和区域配置
查看>>
JavaScript基础(六)面向对象
查看>>
总结几点Quartz的经验
查看>>
从veth看虚拟网络设备的qdisc
查看>>
企业的最佳选择?开放式混合云大行其道
查看>>
物联网、自动化的冲击下未来20年职场六大趋势
查看>>