机器学习1.线性回归

这篇博客详细介绍了机器学习中的线性回归算法,从介绍、引入库、生成数据到散点图可视化,再到MSE和梯度下降的定义。博主提供了完整的代码实现,并通过链接分享了梯度下降和线性回归的公式推导。最后,讲解了如何使用scikit-learn库进行一元和二元线性回归。
摘要由CSDN通过智能技术生成

从本部分开始,从头研究机器学习内容,并尽可能详细的介绍各种机器学习算法,尽可能做到完善,详细,明确。

线性回归算法

1.介绍

以一元一次函数为研究对象,形如y=wx+b,若给出(x,y)的一系列值,期望得到参数w,b的值,这里使用得工具为python及相关库,如numpy,pandas等。

2.引入封装好的库

import numpy as np
import matplotlib.pyplot as plt

3.生成数据

data = []  # 保存样本集的列表
for i in range(100):    # 循环采样100个点
    x = np.random.uniform(-10., 10.)    # 随机采样输入x
    eps = np.random.normal(0., 0.1)     # 采样高斯噪声
    y = 1.477 * x + 0.089 + eps         # 得到模型输出
    data.append([x, y])                 # 保存样本点
data = np.array(data)                   # 转换为2D numpy数组
# print(len(data))                      # 输出为100
# print(data[:,0],data[:,1])            # 其中x=data[:,0],y=data[:1]

4.散点图可视化

# 散点图
# 绘图
# 1. 确定画布
plt.figure(figsize=(8, 4))  # figsize:确定画布大小

# 2. 绘图
plt.scatter(data[:,0],  # 横坐标
            data[:,1],  # 纵坐标
            c='red',  # 点的颜色
            label='scatter gram')  # 标签 即为点代表的意思
# 3.展示图形
plt.legend()  # 显示图例(标签)

plt.show()  # 显示所绘图形

在这里插入图片描述

5.定义MSE、梯度下降等

def mse(b, w, points):
    # 根据当前w,b参数计算方差损失
    totalError = 0
    for i in range(0, len(points)): # 循环迭代所有点
        x = points[i, 0]            # 获取i号点的输出x
        y = points[i, 1]            # 获取i号点的输出y
        totalError += (y - (w * x + b)) ** 2    # 计算差的平方,并累加
    return totalError/float(len(points))    # 将累加的误差求平均,得到均方差


def step_gradient(b_current, w_current, points, lr):  # 计算误差函数在所有点上的导数,并更新 w,b
    b_gradient = 0
    w_gradient = 0
    M = float(len(points))  # 总样本数
    for i in range(0,</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值