机器学习
文章平均质量分 64
我会像蜗牛一样努力
自己选择的路,跪着也要走完。既然选择,那么风雨兼程吧!愿未来三年不负韶华,不负卿。
展开
-
科大讯飞---温室温度预测挑战赛
一、赛题介绍:时间序列问题比赛网址数据集: 初赛 训练集:2019年3月14日---->2019年4月3日,每分钟一条数据,接近半个月的数据。测试集:后10天的数据,每30分钟一条数据。数据预处理:1.训练集中label缺失的样本去掉。2.训练集中其他特征缺失比例比较小,且相邻2个样本关联程度比较高,因此直接选择线性填充。3.异常值截断(假设数据服从正态分布,使用3σ法则进行截断,可用前后均值替换)upper = data_df...原创 2021-09-26 21:16:54 · 931 阅读 · 1 评论 -
Leetcode--------贪心
455. 分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果s[j]>= g[i],我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1:输入: g = [1,2,3], s = [1,1]输出: 1解释: 你有三个孩子和两...原创 2021-08-25 22:23:31 · 316 阅读 · 0 评论 -
Leetcode206. 反转链表
给你单链表的头节点head,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]解法:代码:# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution...原创 2021-07-04 19:52:58 · 95 阅读 · 0 评论 -
Leetcode707. 设计链表
设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。 addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。插入后,新节点将成...原创 2021-07-04 19:29:23 · 96 阅读 · 0 评论 -
Leetcode203. 移除链表元素
给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]输入:head = [], val = 1输出:[]# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=...原创 2021-07-04 15:50:09 · 162 阅读 · 0 评论 -
Tensorflow2.0中获取模型某一层的输出
前言:如题,我们在实验时,通常有这么一个需求:我们已经train好一个model,但是我们希望获取模型的其中的一层的输入,查看某些层提取到了哪些特征,或者对这一层的输出做做一些其他的处理。#其中Wclass_model为已经训练完毕的模型,这里获取该模型倒数第二层的输出sub_model = tf.keras.models.Model(inputs = Wclass_model.input,outputs = Wclass_model.layers[-2].output)result原创 2020-11-23 17:06:40 · 5002 阅读 · 4 评论 -
非平衡分类方法汇总
前言:非平衡分类技术也称非均衡分类技术,通常是指各个类别的样例数量差别很大,某些类别对应的样例过多,而某些类别对应的样例过少;使用这种类型的数据集来训练诸如神经网络之类的模型,通常会导致属于多数类的数据的高精度,但是对于少数类数据的精度是不可接受的。发生这种情况通常是因为模型最终只专注于样本量最大的类,因为样本较少的类在调整权重时出现的次数较少。方法: 随机过采样: 这种方法比较直接,通过增加少数类样本来提高少数类的分类性能,最简单的办法是随机复制少数类样本。 SMOTE:原创 2020-10-02 23:22:51 · 3009 阅读 · 1 评论 -
Tensorflow中卷积网络与反卷积网络
前言:卷积(Convolution) 反卷积(Deconvolution)也有很多其他的叫法,比如:Transposed Convolution(转置卷积),Fractional Strided Convolution(微步卷积)等等。 卷积的实质:卷积的实质就是矩阵相乘,具体细节参照下图:反卷积和卷积的关系:下图表示的是参数为的反卷积操作,其对应的卷积操作参数为。我们可以发现对应的卷积和非卷积操作关系为,但是反卷积却多了。通过对比我们可以发现卷积层中左上角的输...原创 2020-09-22 09:49:32 · 553 阅读 · 0 评论 -
Matplotlib的三层结构
Matplotlib的三层结构主要包括: 1)容器层 容器层包含(1)画板层Canvas(2)画布层 Figure(3)绘图区/坐标系AxesCanvas是位于最底层的系统层,在绘图的过程中充当画板的角色,即放置画布(Figure)的工具。 Figure是 Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色。 Axes是应用层的第二层,在绘图的过程中相当于画布上的坐标系/绘图区的角色,可以通过使用plt.subplots()来分割画布来得到若干个坐原创 2020-09-14 10:38:50 · 1348 阅读 · 0 评论 -
数据挖掘比赛清洗异常值代码(箱型图原理)
def outliers_proc(data, col_name, scale=3): """ 用于清洗异常值,默认用 box_plot(scale=3)进行清洗 :param data: 接收 pandas 数据格式 :param col_name: pandas 列名 :param scale: 尺度 :return: """ def box_plot_outliers(data_ser, box_scale): """.原创 2020-08-31 21:24:42 · 520 阅读 · 0 评论 -
读论文笔记(ACGAN)
前言:这篇论文的全称为:《Conditional Image Synthesis with Auxiliary Classifier GANs》,基于辅助分类器GANs的条件图像合成,在很多时候,它和SGAN一样经常被人们称为半监督学习,因为会用到图片的类别标签;ACGAN同时结合了CGAN和SGAN的做法来提高图片的生成质量,即CGAN通过结合标签信息来提高生成数据的质量,SGAN通过重建标签信息来提高生成数据的质量。在我看来,(1)ACGAN的提出在很大程度上解决了GAN模型崩溃的问题,所谓GAN原创 2020-08-15 16:25:18 · 5597 阅读 · 0 评论 -
机器学习之矩阵求导
简介:无论是最小二乘法,还是神经网络反向传播算法,到处可以见到矩阵求导的身影,所以矩阵求导在机器学习中还是比较重要的。下面将从输入和输出的形式来分开介绍矩阵求导:首先,我们要明确矩阵求导的本质,即,矩阵A对矩阵B求导的本质是矩阵A中的每一个元素对矩阵B中的每一个元素进行求导。求导结果中含有元素的大小,为矩阵A的元素个数乘以矩阵B中元素的个数。求导秘术:拉伸:标量不变,向量拉伸。 前面横向拉伸,后面纵向拉伸。 输入为标量,输出为标量 这种情况,没有啥好介绍的,使用常规求导原创 2020-08-04 18:49:58 · 729 阅读 · 0 评论 -
机器学习领域常用激活函数汇总
前言这篇博客简介了一些常见的激活函数,并简要总结了每个激活函数的缺点。部分常见激活函数一览图: sigmoid 表达式:导数:sigmoid激活函数图像如下:下面我们来看看sigmoid激活函数有哪些缺点:在饱和区域存在梯度缺失的问题。 sigmoid是一个非零中心的函数。 表达式较为复杂,计算复杂度高。这里详细介绍第二个缺点,我们知道在NN的训练过程中,正向传播得到损失值会和反向传播得到偏导数做积,以此获得下一次更新的梯度,而非..原创 2020-08-01 13:03:45 · 543 阅读 · 0 评论 -
MNIST数据集介绍并基于Tensorflow实现逻辑回归
MNIST数据集介绍MNIST数据集是一个手写体数据集,它来自美国国家标准与技术研究所,National Institute of Standards and Technology (NIST)。训练集 (training set) 由来自 250 个不同人手写的数字构成,其中 50% 是高中学生,50% 来自人口普查局 (the Census Bureau) 的工作人员。测试集(test set) 也是同样比例的手写数字数据。该数据集包含60,000个用于训练的示例和10,000个用于测试的示例...原创 2020-07-26 16:59:59 · 548 阅读 · 0 评论 -
集成学习总结
前言这篇博客大部分内容转载了博客园上的一篇博客,那篇博客整理的比较好,我还添加了一些内容,包括catboost、CART。博客链接1.基本概念集成学习的主要思路是先通过一定的规则生成多个学习器,再采用某种集成策略进行组合,最后综合判断输出最终结果。一般而言,通常所说的集成学习中的多个学习器都是同质的"弱学习器"。基于该弱学习器,通过样本集扰动、输入特征扰动、输出表示扰动、算法参数扰动等方式生成多个学习器,进行集成后获得一个精度较好的"强学习器"。 强分类器与弱分类器简单来说:一个.转载 2020-07-25 20:29:00 · 715 阅读 · 0 评论 -
Conditional Generative Adversarial Nets(CGAN)
前言:这篇博客为阅读论文后的总结与感受,方便日后翻阅、查缺补漏,侵删!论文:Conditional Generative Adversarial Nets参考:博客一、博客二解决的问题:介绍这个问题前,我们首先回顾GAN的优点与缺点:GAN 的优点:● GAN是一种生成式模型,相比较其他生成模型(玻尔兹曼机和GSNs)只用到了反向传播,而不需要复杂的马尔科夫链。● 相比其他所有模型,GAN可以产生更加清晰,真实的样本。● GAN采用的是一种无监督的学习方式训...原创 2020-07-20 13:08:17 · 2024 阅读 · 0 评论 -
InfoGAN(基于信息最大化生成对抗网的可解释表征学习)
前言:这篇博客为阅读论文后的总结与感受,方便日后翻阅、查缺补漏,侵删!论文:InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets解决的问题:InfoGAN,它是对生成性对抗网络(GAN)的一个信息论扩展,因此,它是对原有模型的改进。InfoGAN能够以完全无监督的方式学习分离的表示,我们知道在GAN提到,生成器(generato...原创 2020-07-18 22:55:17 · 2016 阅读 · 1 评论 -
在排序数组中查找数字
统计一个数字在排序数组中出现的次数()。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 50000思路一:这个思路也是最容易想到的,从左边开始遍历找到第一个出现的,位置用表示;从右开始遍历找到第一个出现的,位置用表示,那么在排序数组中出现的次数为。这种方法的时间复杂度O(...原创 2020-07-16 23:31:12 · 292 阅读 · 0 评论 -
零样本学习
前言这篇博客为阅读论文后的总结与感受,方便日后翻阅、查缺补漏,侵删!论文:零样本学习研究进展 零样本图像识别 零样本图像分类综述:十年进展概念:零样本学习 (Zero-shot learning).,零样本学习是迁移学习的一种特殊场景;在零样本学习过程中,训练类集和测试类集之间没有交集,需要通过训练类与测试类之间的知识迁移来完成学习,使在训练类上训练得 到的模型能够成功识别测试类输入样例的类标签。更一般来说,零样本学习如果模型在训练过程中,只使用训练类的样本进行训练,,且在测..原创 2020-07-15 10:08:48 · 10919 阅读 · 1 评论 -
VAE中重参数化技巧
谈起重参数化技巧,不得不提变分自编码器(VAE);在VAE中,我们知道需要对编码器的输出、进行采样,从而可以将采样输入到编码器网络,能够得到输入样本的重构,以这种方式对模型进行训练。而VAE并没有这么做,而是采取了另一种做法:从高斯分布中采样,然后和训练样本训练得到的和,做运算的结果输入到解码器网络(点乘符号表示每个元素位置上的相乘),便能得到我们样本x的重构,这让我很困惑很久。下面开始介绍重参数化技巧,以两种情况: 概率分布: 直接从边缘概率分布中采样,即给定一个随机变量y,并且,这里我们用表示原创 2020-07-12 17:13:11 · 15964 阅读 · 1 评论 -
梯度下降算法综述
目录:简介梯度下降算法。 介绍梯度下降算法的不同变体。 总结在优化过程面临的一些挑战。 介绍最常见的优化算法。 介绍并行和分布式环境中梯度下降算法。 关于随机梯度优化算法的一些额外策略。简介梯度下降算法:梯度下降法是最常用的优化算法之一,也是迄今为止优化神经网络最常用的方法之一。同时,每个最先进的深度学习库都包含各种优化梯度下降算法的实现。然而,这些算法通常被称作黑盒优化器,因为很难找到对其优缺点的实际解释。本文旨在为读者提供有关优化梯度下降的不同算法的区别与联系,使得它更好的为我们所用原创 2020-07-11 19:32:58 · 1257 阅读 · 0 评论 -
泰勒展开式推导梯度下降
关于梯度下降的公式可能大家耳熟能详,沿着梯度的反方向一步一步的移动,总能到达我们想要的最优点;可是为什么可以这样做呢?开始我的答案无非就是“梯度的反方向就是损失值下降最快的方向”,最近看了李宏毅老师的梯度下降算法发现别有洞天,接下来我将以通俗的语言来详细解释梯度下降算法公式的数学推导过程。推导梯度下降之前开始引入一个Feature scaling(特征缩放):假设我们要优化的目标函数为:,当的变化以1,2,.....这样比较小幅度的变化,而以100,200,.....比较大幅度的变化,因此与对.原创 2020-07-10 15:55:43 · 1716 阅读 · 0 评论 -
使用tensorflow出现FutureWarning: Passing (type, 1) or ‘1type‘ as a synonym of type is deprecated警告
最近在anaconda中创建一个python环境,并基于该环境安装tensorfow,在使用过程中出现以下一系列的警告,看着非常刺眼:当前我的python版本为3.7.7、tensorflow的版本为1.13.1。大概看了看警告,应该和numpy有关,并猜想可能是numpy版本的原因;于是使用下列语句查看当前环境的numpy版本为1.19.0:pip list解决方法:使用下列语句开始从1.19.0开始降低numpy版本,直到将numpy的版本降为1.16.0问题得以解决。.原创 2020-07-09 23:40:51 · 519 阅读 · 0 评论 -
Python环境搭建总结
Python2(python)与Python3:首先要明确的是Python2与Python3不是等价的,Python3主要指安装python3.0及其更高版本的解释器,而Python2主要指安装python3.0以下版本的解释器。py2:print语句,语句就意味着可以直接跟要打印的东西,如果后面接的是一个元组对象,直接打印。py3:print函数,函数就以为这必须要加上括号才能调用,如果接元组对象,可以接收多个位置参数,并可以打印。pip的使用:使用下列命令可以查看当前python环境原创 2020-07-09 17:41:08 · 2614 阅读 · 3 评论 -
机器学习模型的常用评价指标
在看论文的过程中发现了有很多模型好坏的评价指标,有比较常见的指标,也有一些从未了解到的评价指标,是时候来整理一波了,以便后续学习查缺补漏。常见概念:真正(True Positive , TP):被模型预测为正的正样本。 假正(False Positive , FP):被模型预测为正的负样本。 假负(False Negative , FN):被模型预测为负的正样本。 真负(True Negative , TN):被模型预测为负的负样本。 真正率(True Positive Rate,T.原创 2020-07-05 13:34:54 · 2993 阅读 · 0 评论 -
BP(BackPropagation)算法
这段时间又重新来看了看这个算法,发现学过的东西一段时间过去几乎忘完了,还是觉定每次学习过一个比较重要的算法就写一个总结,第一次的总结尽量简单,后面再充实,以便查缺补漏。概念:BP算法是由学习过程由信号的正向传播与误差的反向传播两个过程组成。由于多层前馈网络的训练经常采用误差反向传播算法,人们也常把将多层前馈网络直接称为BP网络。...原创 2020-08-13 20:25:21 · 314 阅读 · 0 评论 -
马尔可夫链蒙特卡洛采样(MCMC)
首先我们要明确的是马尔可夫链蒙特卡洛采样以下简称MCMC,它首先是个采样方法。1.采样的目的采样作为任务,用于生成新的样本 求和/求积分比如我们知道样本z的后验分布p(z|x),我们经常会有一个需求,得到目标函数f(x)在概率分布上的期望,通常这个期望是很难计算的,我们可以根据p(z|x)采用N个样本,分别为,当N足够大我们便可以得到该期望值。如下式:也就是说,从概率分布中取点,从而近似计算这个积分。采样结束后,我们需要评价采样出来的样本点是不是好的样本集:样本趋向于高概率的区.原创 2020-06-24 00:07:11 · 3609 阅读 · 0 评论