闲着没事,写了个线性回归的源代码

本文介绍了作者从Coursera上的吴恩达《Machine Learning》课程中学到的线性回归知识,并尝试用Python实现了线性回归的源代码。尽管Python已有现成的库可供使用,但作者通过手动编写代码来加深理解。文中提到了在实现过程中遇到的theta梯度问题,以及对numpy矩阵操作与Matlab的比较。此外,作者还讨论了求导时涉及的diag矩阵和如何用更优雅的数学表达式来表示这一过程。
摘要由CSDN通过智能技术生成


以前只是在Coursera上吴恩达的《Machine Learning》课时用Matlab写过线性回归的源代码,这些东西虽然在python中有现成的库可以调用,但为了练手,还是随便写了一个线性回归的源代码。逻辑回归原理和线性回归类似,不过要乘一个diag矩阵。数据集是课后作业中的.mat文件不过由于只是练手的缘故,并没有特别注意输入X的数据格式的问题,比如这里默认X的feature个数为1,。感觉numpy对矩阵操作还是不如Matlab方便


# coding=utf-8
# 版权所有,侵权不究
# typhoonbxq
# the University of Hong Kong

import scipy.io as scio
import numpy as np
import matplotlib.pyplot as plt

class LR:
    def __init__(self,X,Y):
        self.m = len(Y)                                              # num of training examples
        self.n = len(X[0]) + 1                                       # num of features, adding "1"
        self.X = np.hstack((np.ones((self.m,1)),X))                  # Add '1' to each training example
        self.Y = Y.reshape((self.m,1))
        self.theta = 0
        self.cost = []


    def fit(self):
        theta &
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值