当前位置: 首页 > news >正文

机器学习-逻辑回归算法-向量版代码

`import numpy as np

x_train=[[1,2],[1,3],[1,6],[1,9],[1,2],[1,3],[1,6],[1,9]]
y_train=[1,1,0,0,1,1,0,0]
x_train_num=len(x_train)

向量化训练组

x_a=np.array(x_train)
x_v=(x_a.T)
y_v=np.array(y_train)
print(f"x_v={x_v},y_v={y_v}")

学习率和训练次数

stu_rate=0.01
train_item=1000

权重向量化初始化

weight=np.zeros((2,1))

基本偏置,避免input=0,output=0

b=0

激活函数-给网络引入非线性运算

def singmo (z):
a=1/(1+np.exp(-z))
return a

开始训练

for i in range(train_item):
#计算线性输入,向量点积,向量化
Z=np.dot(weight.T,x_v)+b
print(f"Z={Z}")
#反向传播求梯度
#初始wight=0时,A=0.5
A=singmo(Z)
print(f"A={A}")
#计算梯度
#a-y
dz=np.zeros((1,8))
dz=A-y_v
dz=dz.T
print(f"dz={dz}")
#gradient
dw=np.zeros((2,1))
dw=np.array(dw)
dw=(np.dot(x_v,dz))/x_train_num
print(f"gradient={dw}")

db=(np.sum(dz))/x_train_num#更新权重
weight=weight-stu_rate*dw
b=b-stu_rate*db
#检测损失函数
if i % 50 ==0:loss = -np.mean(y_v * np.log(A ) + (1 - y_v) * np.log(1 -A ))print(f"权重向量{weight},损失函数{loss}")

def pre (x,weight,b):
def singmo (z):
a=1/(1+np.exp(-z))
return a
x_test_array = np.array(x).T
Z=np.dot(weight.T,x_test_array)+b
result=singmo(Z)
print(f"Z={result}")
return result

x_test=[[1,5],[1,6]]
y_test=[1,0]

pre_test=pre(x_test,weight,b)
y_test_pre=(pre_test>0.5).astype(int)
print(f"预测结果{y_test_pre}")

`

http://www.zskr.cn/news/41310.html

相关文章:

  • 星期三
  • Java项目常用异常处理场景与实战指南
  • 一次性删除所有的GitHub Action记录
  • 第三十四篇
  • 2025-11-05 PQ v.Next日志记录
  • AGC与AVC是什么
  • 结构体与联合体的区别
  • 新学期每日总结(第20天)
  • 铁杆粉丝占比20251105
  • 【动态维护前 x 大元素】LeetCode 3321. 计算子数组的 x-sum II
  • 100小时学会SAP—问题9:MD03提示日期在有效工厂日历之后(请改正)
  • 100小时学会SAP—问题7:FB70提示过账码没有定义
  • 树剖
  • 如何降低大模型幻觉
  • 多智能体架构中 如何解决总控agent路由错误的问题
  • 回归(监督学习)
  • 100小时学会SAP—问题3:成本控制控制凭证的编号范围
  • 牛客2025秋季算法编程训练联赛4-提升组
  • 随机数板子 - miao
  • 在React中实现路由跳转
  • 022304105叶骋恺数据采集第二次作业
  • 2025.11.5模拟赛
  • WordPress Social Feed Gallery插件未授权信息泄露漏洞分析
  • 2025-11-3
  • 2025-11-2
  • 网页打包EXE/APK/IPA出现乱码时怎么回事?
  • Ai元人文:个人阐述疏漏声明与系统性术语修正说明
  • 第一天笔记
  • quick save
  • Codeforces Global Round 28 VP 记录