《李宏毅机器学习》task6

YOLOv12改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进 1️⃣ 什么!不知道如何改进模型⁉️ 本专栏所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行,性价比极高。2️⃣ 找不到合适的模块⁉️ 所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,并进行二次创新,新颖度高,创新度高,能够适应不同的任务场景。3️⃣ 不确定自己改进的步骤、结果是否正确⁉️ 订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容,非常适合新手。4️⃣ 团队内发表数篇SCI论 阅读详情
class LogisticRegression(object):

    def __init__(self, learning_rate=0.1, max_iter=100, seed=None):
        self.seed = seed
        self.lr = learning_rate
        self.max_iter = max_iter

    def fit(self, x, y):
        np.random.seed(self.seed)
        self.w = np.random.normal(loc=0.0, scale=1.0, size=x.shape[1])
        self.b = np.random.normal(loc=0.0, scale=1.0)
        self.x = x
        self.y = y
        for i in range(self.max_iter):
            self._update_step()
            # print('loss: \t{}'.format(self.loss()))
            # print('score: \t{}'.format(self.score()))
            # print('w: \t{}'.format(self.w))
            # print('b: \t{}'.format(self.b))

    def _sigmoid(self, z):
        return 1.0 / (1.0 + np.exp(-z))

    def _f(self, x, w, b):
        z = x.dot(w) + b
        return self._sigmoid(z)

    def predict_proba(self, x=None):
        if x is None:
            x = self.x
        y_pred = self._f(x, self.w, self.b)
        return y_pred

    def predict(self, x=None):
        if x is None:
            x = self.x
        y_pred_proba = self._f(x, self.w, self.b)
        y_pred = np.array([0 if y_pred_proba[i] < 0.5 else 1 for i in range(len(y_pred_proba))])
        return y_pred

    def score(self, y_true=None, y_pred=None):
        if y_true is None or y_pred is None:
            y_true = self.y
            y_pred = self.predict()
        acc = np.mean([1 if y_true[i] == y_pred[i] else 0 for i in range(len(y_true))])
        return acc

    def loss(self, y_true=None, y_pred_proba=None):
        if y_true is None or y_pred_proba is None:
            y_true = self.y
            y_pred_proba = self.predict_proba()
        return np.mean(-1.0 * (y_true * np.log(y_pred_proba) + (1.0 - y_true) * np.log(1.0 - y_pred_proba)))

    def _calc_gradient(self):
        y_pred = self.predict()
        d_w = (y_pred - self.y).dot(self.x) / len(self.y)
        d_b = np.mean(y_pred - self.y)
        return d_w, d_b

    def _update_step(self):
        d_w, d_b = self._calc_gradient()
        self.w = self.w - self.lr * d_w
        self.b = self.b - self.lr * d_b
        return self.w, self.b

import numpy as np


def generate_data(seed):
    np.random.seed(seed)
    data_size_1 = 300
    x1_1 = np.random.normal(loc=5.0, scale=1.0, size=data_size_1)
    x2_1 = np.random.normal(loc=4.0, scale=1.0, size=data_size_1)
    y_1 = [0 for _ in range(data_size_1)]
    data_size_2 = 400
    x1_2 = np.random.normal(loc=10.0, scale=2.0, size=data_size_2)
    x2_2 = np.random.normal(loc=8.0, scale=2.0, size=data_size_2)
    y_2 = [1 for _ in range(data_size_2)]
    x1 = np.concatenate((x1_1, x1_2), axis=0)
    x2 = np.concatenate((x2_1, x2_2), axis=0)

    x = np.hstack((x1.reshape(-1, 1), x2.reshape(-1, 1)))
    y = np.concatenate((y_1, y_2), axis=0)
    data_size_all = data_size_1 + data_size_2
    shuffled_index = np.random.permutation(data_size_all)
    x = x[shuffled_index]
    y = y[shuffled_index]
    return x, y


def train_test_split(x, y):
    split_index = int(len(y) * 0.7)
    x_train = x[:split_index]
    y_train = y[:split_index]
    x_test = x[split_index:]
    y_test = y[split_index:]
    return x_train, y_train, x_test, y_test




import matplotlib.pyplot as plt


import LogisticRegression


x, y = generate_data(seed=272)
x_train, y_train, x_test, y_test = train_test_split(x, y)

# visualize data
# plt.scatter(x_train[:,0], x_train[:,1], c=y_train, marker='.')
# plt.show()
# plt.scatter(x_test[:,0], x_test[:,1], c=y_test, marker='.')
# plt.show()

# data normalization
x_train = (x_train - np.min(x_train, axis=0)) / (np.max(x_train, axis=0) - np.min(x_train, axis=0))
x_test = (x_test - np.min(x_test, axis=0)) / (np.max(x_test, axis=0) - np.min(x_test, axis=0))

# Logistic regression classifier
clf = LogisticRegression(learning_rate=0.1, max_iter=500, seed=272)
clf.fit(x_train, y_train)

# plot the result
split_boundary_func = lambda x: (-clf.b - clf.w[0] * x) / clf.w[1]
xx = np.arange(0.1, 0.6, 0.1)
cValue = ['g', 'b']
plt.scatter(x_train[:, 0], x_train[:, 1], c=[cValue[i] for i in y_train], marker='o')
plt.plot(xx, split_boundary_func(xx), c='red')
plt.show()

# loss on test set
y_test_pred = clf.predict(x_test)
y_test_pred_proba = clf.predict_proba(x_test)
print(clf.score(y_test, y_test_pred))
print(clf.loss(y_test, y_test_pred_proba))
# print(y_test_pred_proba)

在这里插入图片描述

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分) 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。 阅读详情

相关推荐

实战解析:如何通过LTspice仿真优化MOS管缓启动电路,解决上电冲击电流问题

本文详细解析如何通过LTspice仿真优化MOS管缓启动电路,有效解决上电冲击电流问题。文章从问题根源分析入手,介绍LTspice环境搭建、缓启动电路设计原理、参数优化技巧及实际工程问题排查,帮助工程师掌握MOS管电源开关电路的关键设计方法,提升系统可靠性和性能。

weixin_28683689的博客 516

对数几率回归 —— Logistic Regression

机器学习基础算法python代码实现可参考:zlxy9892/ml_code1 原理1.1 引入首先,在引入LR(Logistic Regression)模型之前,非常重要的一个概念是,该模型在设计之初是用来解决0/1二分类问题,虽然它的名字中有回归二字,但只是在其线性部分隐含地做了一个回归,最终目标还是以解决分类问题为主。为了较好地掌握 logistic regression 模型,有必要先了解...

hellozhxy的博客 1万+

AI开发助手介绍

AI开发助手介绍随着NLP方向发展越来越成熟,AI写代码领域出现了几个非常好的模型,今天笔者给大家推荐几个AI Coding 助手AI Coding助手是以IDEA插件或vim插件形式提供服务,在编辑器中写代码时,可以实时预测下一行要输入的代码,提升开发效率。Github Copilot首先要介绍的是Github Copilot,Copilot是个AI Coding助手,它从注释和代码中提取上下文,给出单行和整个函数的代码建议,Copilot由Open AI 的CodeX模型提供支持,它是一个由OpenAI

bobo_simpler的博客 5768

DW李宏毅机器学习Task6

Self-Supervised Learning自监督学习 从芝麻街的人物引入自监督学习的相关概念方法。ELMo、BERT、ERNIE、Big Bird BERT是非常复杂的模型,包含340million个参数。模型变得越来越复杂,参数越来越多。 自监督学习介绍 有监督和自监督学习的区别: 有监督学习数据中包含标签,自监督学习数据中不包含标签,是无监督学习的一种。 BERT是Transformer Encoder,,最早用在自然语言处理中,也可以用在语音等问题中。 Masking:Bert输入文字

momokofly的博客 350

Win10+pycharm+conda 配置Siammask 过程记录(新手向)

我们跑动demo 需要配置两个相关的文件这两个文件需要用 git 进行下载,对于不熟悉git的小伙伴 我这里给出连接,大家可以直接下载即可,并将其配置在 experiments文件夹下然后大家再需要在设置参数参数这里给出了。

C1137577723的博客 551

FAST-LIO2实战:如何在无人机上部署并实现厘米级定位(附ROS配置全流程)

本文详细介绍了如何在无人机上部署FAST-LIO2激光雷达惯性里程计系统,以实现厘米级精确定位。内容涵盖从硬件选型(如激光雷达与机载计算机)、软件环境配置(ROS Noetic)、传感器标定,到FAST-LIO2参数调优、与PX4飞控集成以及实际飞行测试的全流程。重点解决了实时定位中的外参标定、数据同步等关键问题,为无人机在无GPS或复杂光照环境下提供稳定可靠的定位解决方案。

weixin_29062865的博客 251

【李宏毅机器学习CP21】(task6)卷积神经网络

学习心得/总结 (1)CNN误差反向传播的细节可以参考《深度学习的数学》P200的5.5部分,还没看。 (2)卷积层可通过重复使用卷积核有效地表征局部空间,卷积核(过滤器filterfilterfilter)通过卷积的计算结果(相似度)表示该卷积核和扫描过的图像块的灰色格子部分相吻合的个数——该值越大则说明越符合卷积核的偏好程度。 ——卷积的结果矩阵为特征映射(featurefeaturefeature mapmapmap) (3)说到内积,要和HadamardHadamardHadamard乘积区分,后者

发现问题,并解决问题,批判性思维 1596

CCAR-23《正常类飞机适航规定》和CCAR-25《运输类飞机适航规定》差异分析

通过详细比较CCAR-23和CCAR-25在适用范围、设计标准、性能要求、运行限制、安全冗余和环境适应性方面的差异,我们可以看出,CCAR-23适用于轻型飞机,开发和运营成本较低,设计要求相对简单。而CCAR-25适用于大规模运输飞机,设计、开发、测试和运营管理都需要更高的复杂性和投入。

qq_41854911的博客 3710

【李宏毅机器学习2022】Task07 总结

本次对datawhale组织的《李宏毅机器学习-2021 10月》期学习进行总结。

QAQterrible的博客 1424

YOLO + SubspaceAD:一张良品图,检出所有未知缺陷

当YOLO遇上子空间建模,工业质检正迎来从“见多识广”到“举一反三”的质变时刻。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 501

如何对TBSS的结果进行统计学的分析,已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1442

【李宏毅机器学习2021】Task02 回归

本系列是针对datawhale《李宏毅机器学习-2022 10月》的学习笔记。本次是对回归的学习总结。本节通过视频学习到回归任务的提出,三个要素,及如何优化。李老师通过层层递进,提出问题解决问题的方式不断打磨方法,从中介绍回归任务的始末,引出深度学习及网络加深伴随的过拟合问题。

QAQterrible的博客 1002

7.3 空间矢量调制(SVM)整数算法

本文提出了一种基于整数运算的空间矢量调制(SVM)优化实现方案,适用于计算资源有限的Cortex-M0平台。针对传统SVM算法中复杂的三角函数和浮点运算问题,重点优化了扇区判断和占空比计算两个关键环节。在扇区判断方面,采用基于电压分量符号和相对大小的三变量法,避免了角度计算;在占空比计算方面,通过几何关系将作用时间表示为电压分量的线性组合,并采用定点数实现。方案还详细讨论了系数定点化、死区补偿等实现细节,在保证精度的同时显著降低了计算复杂度。实验结果表明,优化后的整数算法在M0平台上仅需50-80个周期即可

技术工作者 946

【李宏毅机器学习2021】Task01 机器学习介绍

【李宏毅机器学习2021】本系列是针对datawhale《李宏毅机器学习-2022》的学习笔记。本次是对机器学习介绍的学习总结。本节通过学习视频了解到李老师对机器学习课程的整体安排,介绍了每个章节的侧重点,从回归开始,由有监督到半监督,无监督。以及后续的mata learning。整体介绍目前深度学习的学习大纲。讲解中也穿插了有多有趣的例子,容易接受同时也充满乐趣。希望在参加本次学习课程可以拓宽自己的知识面,打扎实基础理论,点满技能树,在丰富作业体系下提升自己的DLcoing能力。

QAQterrible的博客 757

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Datawhale十月组队学习--《李宏毅机器学习》--Task02

Datawhale十月组队学习:《李宏毅机器学习》 往期指路    Task01:什么是机器学习 文章目录Datawhale十月组队学习:《李宏毅机器学习》往期指路前言一、回归(Regression)二、使用步骤1.引入库2.读入数据总结 前言   本篇主要对《李宏毅机器学习》中关于【回归】部分的知识记录。 一、回归(Regression)    1、不是模型越复杂越好 2、还需要考虑数据集的大小 3、只考虑CP值是不对的,还要考虑因素,需要重新设置function set 4、过拟合:Regular

可乐的博客 527

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

《李宏毅机器学习》task1

1.什么是机器学习 2.中心极限定理、正态分布、最大似然估计 3.线性回归loss function推导 4.损失函数和凸函数之间的关系

devcy的博客 316

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

《李宏毅机器学习》task2

《李宏毅机器学习》task21.偏差和方差学习误差由偏差和方差而产生过拟合,欠拟合2.鞍点,全局最优和局部最优3.梯度下降Mini-Batch与SGDBatch与Mini-Batch,SGD的区别如何根据样本大小选择哪个梯度下降写出SGD和Mini-Batch的代码4.交叉验证5.归一化6.回归模型评价指标 1.偏差和方差 学习误差由偏差和方差而产生 偏差与方差分别是用于衡量一个模型泛化误差的...

devcy的博客 424

DW李宏毅机器学习笔记--Task01-机器学习介绍

文章目录前言一、机器学习介绍1.人工智能、机器学习、深度学习之间的关系2.Hand-crafted rules与Machine learning3.机器学习的思路二、机器学习相关的技术1.监督学习A.回归(Regression)问题分类(Classification)问题Deep Learning2.半监督学习迁移学习无监督学习监督学习中的结构化学习(structured learning)强化学习总结 前言 这是我在Datawhale组队学习李宏毅机器学习的记录,既作为我学习过程中的一些记录,也供同好们

StarryPilgrim 449

《李宏毅机器学习》task7

import numpy as np import pandas as pd def cancShannonEnt(dataSet): ''' :param dataSet: dataSet :return: shannonEnt ''' # 计算公式前,注意数据的格式(array) numEntries = len(dataSet) # 获取数据的行数 labe...

devcy的博客 208

《李宏毅机器学习》task5

《李宏毅机器学习》task5推导LR损失函数(1)学习LR梯度下降(2)利用代码描述梯度下降(选做)(3)Softmax原理(4)softmax损失函数(5)softmax梯度下降(6)参考文献 推导LR损失函数(1) 假定: LR逻辑回归假设样本服从泊松0–1分布,因此p(y|x)表达式: 求最大似然估计: 进而求最大对数似然估计: 损失函数: 损失函数表征预测值与真实值之间的差异程度...

devcy的博客 436

《李宏毅机器学习》学习笔记 - Task01 机器学习介绍

目录Task01 机器学习介绍机器学习的概念机器学习任务分类回归(Regression)分类(Classification)聚类(Clustering)结构化学习(Structured Learning)机器学习方法分类监督学习(Supervised Learning)半监督学习(Semi-Supervised Learning)迁移学习(Transfer Learning)无监督学习(Unsupervised Learning)强化学习(Reinforcement Learning) Task01 机器学

weixin_57107764的博客 1283

台大李宏毅机器学习作业4(HW4)——可解释机器学习

最近刚开始学习机器学习,看的是台湾大学李宏毅老师的视频课程Machine Learning 2019,李宏毅老师课程共有8个作业,在网上大约可以搜到前三个作业的解答,分别是PM2.5预测,人薪酬的二分类和表情分类,我在做这三次作业中主要参考了秋沐霖的三篇博客,链接如下: 作业1:线性回归预测PM2.5----台大李宏毅机器学习作业1(HW1) 作业2:Logistic回归预测收入----台大李宏毅...

Horizon2333的博客 3815

【李宏毅机器学习】01:机器学习介绍 Introduction

机器学习介绍 Introduction 主要内容: 一、机器学习步骤 二、机器学习框架 三、机器学习学习地图 四、总结 对本课程的内容做了概述,并介绍了不同的机器学习方法

PKM of bk 716

【李宏毅机器学习2021】Task03 误差和梯度下降

【李宏毅机器学习2021】本系列是针对datawhale《李宏毅机器学习-2022 10月》的学习笔记。本次是对误差和梯度下降的学习总结。本节通过视频学习到对模型调优中面临的系列问题,李宏毅老师列出常见问题树状图,从train的loss开始,到test loss问题,引出训练中的问题并讲解原因,介绍改进方法。

QAQterrible的博客 945

《李宏毅机器学习》-task4

1.贝叶斯公式 (1)条件概率公式 设A,B是两个事件,且P(B)>0,则在事件B发生的条件下,事件A发生的条件概率(conditional probability)为: P(A|B)=P(AB)/P(B) (2)乘法公式 1.由条件概率公式得: P(AB)=P(A|B)P(B)=P(B|A)P...

devcy的博客 392

【李宏毅机器学习2021】Task05 网络设计的技巧

本次是对深度学习中卷积神经网络的总结。本节课主要讲解卷积神经网络中的感受野、滤波器、下采样的重要组成部分。网络设计技巧在之前内容已经介绍过,本次就打卡卷积神经网络啦。

QAQterrible的博客 1063
上一篇: 《李宏毅机器学习》task5
下一篇: RDD
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值