机器学习01-线性回归-python

本文深入探讨了线性回归算法的多种实现方式,包括从零开始的梯度下降法,利用矩阵运算的直接求解法,以及使用sklearn库的便捷实现。通过对比不同方法,读者可以全面理解线性回归的工作原理及其在实际应用中的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 算法推导

在这里插入图片描述在这里插入图片描述

2. 梯度下降实现

def batchGradientDescent(X, y , theta , alpha , repeat):
    m = len(X)
    cost = []
    for i in range(0 , repeat):
        hyp = np.dot(X , theta)
        loss = hyp - y
        grad = np.dot(X.T ,loss) / m
        theta = theta - alpha * grad
        cost1 = 0.5 * m * np.sum(np.square(np.dot(X , theta.T) - y))
        cost.append(cost1)
    return theta , cost

3. 矩阵实现

def linear_regression_mat(data,target):
    X = np.mat(data)
    X1 = X.T.dot(X)
    if np.linalg.det(X1) == 0:
        theta = np.linalg.solve(X.T , X).dot( X.T).dot( target)
        print 'dddd'
        return theta
    theta = np.linalg.inv(X1).dot(X.T).dot( target)
    #theta = np.linalg.inv(X1) * (X.T) *  target
    return theta

4. sklearn实现

lr = sklearn.linear_model.LinearRegression()
lr.fit(X_train , y_train)
y_pred = lr.predict(X_test)
print lr.coef_
print lr.intercept_

https://github.com/lmm915815/my_ML_python/tree/master/linear_regression

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值