机器学习学习笔记(后续更新)

预先知识

  1. 机器学习是基于统计学科的知识

    • 首先初始化模型的参数,再通过数据不断训练优化模型的一些参数,最后可以达到模型对所需结果预测相差不大的目的。

  2. 机器学习主要包括监督学习和无监督学习两大类

    • 监督学习要求给定带有标签的数据如:x(房子的尺寸)=200,y(标签,房子的价格)=200(万)

      通过利用相应算法学习带有标签的数据集,来实现对目标的预测,比如给定一个不在数据集中的房子尺寸,可以得到相应的房子价格

    • 无监督学习则是给定没有标签的数据,能够用此数据来进行训练得到相应的模型,如孩子可以通过水果颜色的不同,将水果进行分类,但是并未告诉孩子水果的种子(我觉得这里有点类似于利用其他label来进行预测)

model 1----线性回归

  • 线性回归是监督学习的一种。其任务是拟合一条最佳直线使得 loss =实际观测值与模型预测值之间的平方差最小,通常用最小二乘法,

    一个简单的线性回归模型是 y = w*x +b

    • y 是目标变量(待预测的值)。

    • x 是特征变量(已知的输入特征)。

    • w 是权重(或系数),表示x对y的影响。

    • b 是偏差(或截距),表示模型的预测值在x=0时的值。

  • 模型的训练

    • 目的是为了让loss函数最小,即得到参数w,和b使得

      Loss(w,b)=i=1∑n(y**i−(wxi+b))2

      最小

import numpy as np
import matplotlib.pyplot as plt

# 创建模拟数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)  # 特征变量,随机生成
y = 4 + 3 * X + np.random.randn(100, 1)  # 目标变量,带有随机噪声

# 初始化权重和偏差
w = np.random.randn(1, 1)
b = np.random.randn(1, 1)

# 定义学习率和迭代次数
learning_rate = 0.01
n_iterations = 1000

# 存储损失函数的历史值
loss_history = []

# 梯度下降迭代
for iteration in range(n_iterations):
    # 计算预测值
    y_pred = w * X + b
    
    # 计算损失函数(平方差损失)
    loss = np.mean((y_pred - y)**2)
    loss_history.append(loss)
    
    # 计算梯度
    gradient_w = (1/n) * np.sum((y_pred - y) * X)
    gradient_b = (1/n) * np.sum(y_pred - y)
    
    # 更新权重和偏差
    w = w - learning_rate * gradient_w
    b = b - learning_rate * gradient_b

# 输出最终的权重和偏差
print(f'Linear Regression Model: y = {w[0][0]:.2f} * X + {b[0][0]:.2f}')

# 可视化损失函数的下降过程
plt.plot(range(n_iterations), loss_history)
plt.xlabel('Iterations')
plt.ylabel('Loss')
plt.title('Loss vs. Iterations (Gradient Descent)')
plt.show()

  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值