自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

行者无疆的博客

一名被代码耽误的文艺青年

  • 博客(88)
  • 资源 (5)
  • 收藏
  • 关注

原创 时间序列预测——GRU

  本文展示了使用GRU进行时间序列预测的全过程,包含详细的注释。整个过程主要包括:数据导入、数据清洗、结构转化、建立GRU模型、训练模型(包括动态调整学习率和earlystopping的设置)、预测、结果展示、误差评估等完整的时间序列预测流程。  本文使用的数据集在本人上传的资源中,链接为mock_kaggle.csvimport pandas as pdimport numpy as npimport mathfrom matplotlib import pyplot as pltfrom

2021-04-15 11:22:24 14003 39

原创 时间序列预测——双向LSTM(Bi-LSTM)

  本文展示了使用双向LSTM(Bi-LSTM)进行时间序列预测的全过程,包含详细的注释。整个过程主要包括:数据导入、数据清洗、结构转化、建立Bi-LSTM模型、训练模型(包括动态调整学习率和earlystopping的设置)、预测、结果展示、误差评估等完整的时间序列预测流程。  本文使用的数据集在本人上传的资源中,链接为mock_kaggle.csv代码如下:import pandas as pdimport numpy as npimport mathimport kerasfrom ma

2021-04-12 16:07:45 21567 27

原创 时间序列预测——时序卷积网络(TCN)

  本文展示了使用时序卷积网络(TCN)进行时间序列预测的全过程,包含详细的注释。整个过程主要包括:数据导入、数据清洗、结构转化、建立TCN模型、训练模型(包括动态调整学习率和earlystopping的设置)、预测、结果展示、误差评估等完整的时间序列预测流程。  本文使用的tcn库在本人上传的资源中,链接为tcn.py  本文使用的数据集在本人上传的资源中,链接为mock_kaggle.csvimport pandas as pdimport numpy as npimport mathfro

2021-04-11 09:23:39 30323 103

原创 敲完第一万行代码我发现一个秘密

一入IT深似海,从此假期是路人,我成为程序员一年半,前一年写过的代码大概都没有这几个月多,最近接了一个项目,可谓是忙的昏天黑地,整整敲下了万余行代码,付出了很多,收获的也许更多,而且我发现了一个秘密——编程,是一个把代码越写越多再越写越少的过程。首先,你要明白好的代码不可能是一蹴而就的,我们接到一个项目的时候,如果前期的需求理解透彻、代码结构规划良好会减少一些工作量,但做完这些之后,我们仍然要...

2018-08-29 11:46:38 2682 1

原创 SpringBoot——基础开发(下)

1.Swagger2 自动化测试与文档2.Spring Boot 详解配置文件3.Spring Boot 跨域与前后端分离4.Spring Boot 打包与部署

2022-06-05 17:57:40 462 1

原创 SpringBoot——基础开发(上)

1.SpringBoot 简介2.第一个SpringBoot项目3.Spring Boot 项目启动机制4.Spring Boot 使用模板引擎开发 Web 项目5.Spring Boot 开发 RESTful 风格 Web 项目

2022-06-05 17:40:37 473

原创 Spring——面向切面编程(AOP)

本文介绍了切向切面编程(AOP)中的各个概念,并用两个案例分别讲解了如何通过注解和XML配置的方式使用AOP。

2022-06-05 16:53:38 3460

原创 Spring核心功能之依赖注入(DI)

1 Spring DI(依赖注入)之XML配置我们知道,Spring 的核心功能就是控制反转和依赖注入。前面介绍了控制反转,那依赖注入是什么呢?1.1概念介绍上面是我们之前对于依赖注入的一个通俗解释。这里再着重强调一下 IOC 控制反转与 DI 依赖注入的关系:IOC 控制反转是将对象实例化的动作交由了 Spring 框架, 它的作用是降低了程序的耦合,不需要我们手动的创建对象,但是程序的耦合性还是存在。对象中肯定会有一些其余对象的引用,那么这种引用就称为对象的依赖,而 DI 依赖注入其实是 I

2022-03-20 12:13:56 930

原创 Spring核心功能之控制反转(IOC)

1 Spring IoC(控制反转)通过前面的内容,我们已经可以使用 Spring 框架实现对自定义的 Java 对象管理,由 Spring 框架加载对象,实例化对象,放入容器。其实这就是 Spirng 的核心功能之 IoC,那么什么是 IoC 呢?什么又是容器呢?1.1 什么是 IoC?百度百科:Inversion of Control,缩写为 IoC,是面向对象编程中的一种设计原则,可以用来降低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称

2022-03-19 15:54:26 911

原创 Spring入门

1 Spring 简介1.1 Spring 概述官网定义:Spring 框架为任何类型的部署平台上的基于 Java 的现代企业应用程序提供了全面的编程和配置模型。Spring 的一个关键元素是在应用程序级别的基础架构支持:Spring 专注于企业应用程序的 “管道”,以便团队可以专注于应用程序级别的业务逻辑,而不必与特定的部署环境建立不必要的联系。慕课解释:简单来说:Spring 是一个免费开源框架,为了简化企业级项目开发,提供全面的开发部署解决方案。1.2 Spring 的体系结构结构图

2022-03-19 12:43:37 1767

原创 Spring Framework与JDK版本对应关系

  最近在实践Spring项目时,发现无法通过注解的方式实现Bean容器管理,控制器报错信息为:Failed to read candidate component class,也就是注解扫描不了,在反复检查代码不存在问题后意识到可能是版本兼容问题,根据Spring官网的Spring Framework与JDK版本对应关系解决了该问题。  Spring Framework与JDK版本对应表:Spring Framework版本JDK版本6.0.xJDK 17-215.3.x

2022-03-18 10:59:20 17218 2

原创 Java并发编程进阶——并发锁

1 JAVA 多线程锁介绍1.1 悲观锁定义:悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改(很悲观),所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态。悲观锁的实现:开发中常见的悲观锁实现往往依靠数据库提供的锁机制,即在数据库中,在对数据记录操作前给记录加排它锁。如果获取锁失败,则说明数据正在被其他线程修改,当前线程则等待或者抛出异常。如果获取锁成功,则对记录进行操作,然后提交事务后释放排它锁。实例:Java 中的 synchronized 关键

2022-03-14 20:10:15 4101 1

原创 Java并发编程进阶——多线程的安全与同步

多线程的安全与同步多线程的操作原则多线程 AVO 原则A:即 Atomic,原子性操作原则。对基本数据类型变量的读和写是保证原子性的,要么都成功,要么都失败,这些操作不可中断。V:即 volatile,可见性原则。使用 volatile 关键字,保证了变量的可见性,到主存拿数据,不是到缓存里拿。O:即 order, 就是有序性。代码的执行顺序,在代码编译前的和代码编译后的执行顺序不变。单 CPU 时代的多线程概念:单核 CPU 上,同一时刻只能有一条线程运行,单核 CPU 上运行的单线程程序和

2022-03-14 18:44:47 568

原创 Java并发编程基础(一篇入门)

1 并发编程简介1.1 什么是并发编程所谓并发编程是指在一台处理器上 “同时” 处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。并发编程,从程序设计的角度来说,是希望通过某些机制让计算机可以在一个时间段内,执行多个任务。从计算机 CPU 硬件层面来说,是一个或多个物理 CPU 在多个程序之间多路复用,提高对计算机资源的利用率。从调度算法角度来说,当任务数量多于 CPU 的核数时,并发编程能够通过操作系统的任务调度算法,实现多个任务一起执行。1.2 并发编程的重要性对于一个

2022-03-09 23:05:03 5044 1

原创 JVM垃圾回收器

1 垃圾回收器的位置2 垃圾回收器的基本概念  什么是垃圾回收器:JVM 为 Java 提供了垃圾回收机制,是一种偏自动的内存管理机制。简单来说,垃圾回收器会自动追踪所有正在使用的对象,并将其余未被使用的对象标记为垃圾,JVM会自动进行垃圾回收,释放内存。  哪些内存需要回收:不可能再被任何途径所使用的对象,Java中通过可达性分析法来检测对象是否为垃圾,如果不可达,则将对象标记为垃圾,等待 JVM 回收。3 可达性分析法3.1原理  通过一系列称为"GC Roots"的对象作为起始点,从这些

2022-03-08 12:04:52 3585

原创 JVM运行时数据区

运行时数据区  运行时数据区可以细分为五个模块:栈,堆,寄存器,方法区和本地方法栈,如下图所示。1 JVM 的栈1.1 栈的基本介绍  基本概念:JVM的栈有两个,分别是虚拟机栈和本地方法栈。这里以虚拟机栈为例,本地方法栈和虚拟机栈基本相同。  栈的特点:  a.对于每个线程,将创建单独的运行时栈。对于每个方法调用,将在栈存储器中产生一个条目,称为栈帧。所有局部变量将在栈内存中创建。栈区域是线程安全的,因为它不共享资源。  b.虚拟机栈是线程私有的,它的生命周期与线程相同(随线程而生,随线程而

2022-03-07 14:34:59 1167 1

原创 JVM类加载子系统

1. JVM类加载器1.1 类加载器分类  从上图可知,加载(loading)这一步包含了三个更加细粒度的模块,分别为 BootStrap Class Loader,Extention Class Loader 和 Application Class Loader,这三个 Class Loader 就是我们加载过程中必须要使用到的三大类加载器。1.2 类加载器的特点  动态加载:无需在程序一开始运行的时候加载,而是在程序运行的过程中,动态按需加载,字节码的来源也很多,压缩包jar、war中,网络中

2022-03-06 16:54:42 303

原创 JVM指南

1. JVM概述1.1 定义  JVM (Java Virtual Machine 简称 JVM),即 Java 虚拟机,是运行所有 Java 程序的抽象计算机。  Java 虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java 虚拟机屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 Java 虚拟机上运行的目标代码(字节码,即.class文件),就可以在多种平台上运行。1.2 作用  跨平台:Java 语言之所以有跨平台的优点,完全是 JVM 的

2022-03-06 16:31:57 740

原创 Maven指南

1.Maven简介  Maven 是一个软件工程的项目管理工具,基于工程对象模型(POM), 主要功能是构建项目、管理项目。  Maven 的核心是约定大于配置,初衷是帮助程序开发者在最短时间内完成项目开发过程中的每个过程,目标是更简单,更统一,更快速。2.POM 模型  POM(项目对象模型)是 Maven 最基本也是非常重要的一个概念。通常情况下,我们可以看到 POM 的表现形式是 pom.xml,在这个 XML 文件中定义着关于我们工程的方方面面,当我们想要通过 Maven 命令来进行操作的时

2022-03-03 22:51:23 367

原创 卷积神经网络(CNN)

一、卷积(convolution)  卷积操作就是使用卷积核从左往右、从上往下依次扫描输入的原始矩阵,得到一个降维后的特征矩阵。  使用f∗ff*ff∗f维的卷积核对n∗nn*nn∗n的原始矩阵与进行卷积操作,会得到(n∗f−1)∗(n∗f−1)(n*f-1)*(n*f-1)(n∗f−1)∗(n∗f−1)维的特征矩阵。缺点:  1.每次卷积后会降低数据的维数,多次卷积后特征矩阵就过于小了。  2.矩阵的角落元素只会参与一次运算,而中间的元素会参与多次运算,相当于丢掉了边缘位置的许多信息。  即输

2022-01-16 16:26:33 1668

原创 推荐系统的性能评估和冷启动问题

1.推荐系统的性能评估  除了MSE、RMSE、MAE等神经网络的常用评估指标外,还有:  召回率(recall):用户喜欢的项目有多少被我们推荐了。R=TPTP+FNR=\frac{TP}{TP+FN}R=TP+FNTP​  精确率(precision):我们推荐的项目中有多少是用户喜欢的。P=TPTP+FPP=\frac{TP}{TP+FP}P=TP+FPTP​  F1_Score:F=2×P×RP+RF=2 \times \frac{P\times R }{P+R}F=2×P+RP×R​

2022-01-03 20:09:40 644

原创 YoutubeDNN模型详解

  YoutubeDNN是Youtube用于做视频推荐的落地模型,可谓推荐系统中的经典,其大体思路为召回阶段使用多个简单模型筛除大量相关度较低的样本,排序阶段使用较为复杂的模型获取精准的推荐结果,其结构如下:召回模型排序模型历史video Embedding当前video Embedding搜索词Embedding该用户最后看的N个vidio Embedding的平均池化用户(位置、年龄、性别)Embedding用户语言和video语言EmbeddingRelu

2022-01-03 19:31:44 1560

原创 模型融合方法

  常见的模型融合方法包括平均法、投票法和学习法,其中平均法和投票法是使用较为简单的策略对个体学习器的预测结果进行组合,学习法则使用模型自动学习出组合的策略。1.平均法  多用于回归,包括:简单平均、加权平均。2.投票法  多用于分类,包括:相对多数投票(少数服从多数)、绝对多数投票(多数票须超过半数)、加权投票。3.学习法  一种更为强大的结合策略,即通过另一个学习器来结合,把个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器。常见的有Stacking和Blending。①S

2022-01-03 19:01:16 1194

原创 堆的构造和应用

1.如何构造堆(以小根堆为例)①以完全二叉树的方式从左往右将新元素插入到最后的位置;②从下往上更新,与父结点比较,若小于父结点,则与父结点交换位置,若大于则更新完成。如:10,9,8,7,6构造小根堆2.如何进行堆排序①将堆顶元素与最后一个未固定的元素交换;②从上往下,若父结点小于左右子结点则更新完成,否则找出左右子结点中小于父结点的更小的那一个,与父结点交换位置;③循环①②,每轮确定一个数的位置,直到所有节点被固定。3.如何找出2000万个数中前1000个最大的数①使用前1000个数

2021-12-27 16:01:35 739

原创 超简单的自动机

  本篇博客由力扣第8题引出,这类题目倒是不难,但在不了解自动机之前写出的代码非常臃肿,暴力解需要考虑大量的细节,需要大量的if-else,用了自动机之后才知道什么叫优雅的代码。题目介绍:8. 字符串转换整数 (atoi)  请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负

2021-11-28 11:56:22 155

原创 NLP——Tokenizer

1.什么是Tokenizer  使用文本的第一步就是将其拆分为单词。单词称为标记(token),将文本拆分为标记的过程称为标记化(tokenization),而标记化用到的模型或工具称为tokenizer。Keras提供了Tokenizer类,用于为深度学习文本文档的预处理。2.创建Tokenizer实例from keras.preprocessing.text import Tokenizertok = Tokenizer()3.学习文本字典##假设文本数据为:docs = ['good

2021-11-20 13:12:11 7587

原创 DataFrame详解——序列化/IO/转换

DataFrame详解构造器DataFrame([data, index, columns, dtype, copy])DataFrame是二维、大小可变的表格数据。属性和底层数据属性解释DataFrame.indexDataFrame的索引(行标签)DataFrame.columnsDataFrame的列标签DataFrame.dtypes返回DataFrame中各列的类型DataFrame.info()打印DataFrame的简要摘要Dat

2021-11-09 21:03:56 1003

原创 DataFrame详解——绘图

绘图方法解释DataFrame.plot([x, y, kind, ax, …])DataFrame绘图访问器及方法DataFrame.plot.area([x, y])画一个堆叠的区域图,如:DataFrame.plot.bar([x, y])绘制垂直条形图,如:DataFrame.plot.barh([x, y])绘制水平条形图,如:DataFrame.plot.box([by])绘制DataFrame列的箱线图,如:DataFrame.pl

2021-11-09 20:28:51 8931

原创 DataFrame详解——合并/比较/加入/合并

合并/比较/加入/合并方法解释DataFrame.append(other[, ignore_index, …])在末尾添加行DataFrame.assign(**kwargs)利用现有的列创建新列,如:df.assign(col3= (df['col1'] / df['col2'])利用第1列和第2列构建一个新的第3列)DataFrame.compare(other[, align_axis, …])与另一个DataFrame进行比较,并显示差异DataFra

2021-11-09 19:53:13 1198

原创 DataFrame详解——变形、排序

变形、排序方法解释DataFrame.droplevel(level[, axis])删除请求的索引/列级别DataFrame.pivot([index, columns, values])重塑数据,产生一个“pivot”数据透析表,可以指定不同的列为表的index,columns,valuesDataFrame.pivot_table([values, index, …])创建一个电子表格样式的DataFrameDataFrame.reorder_levels

2021-11-09 15:47:19 2207

原创 DataFrame详解——缺失数据处理

缺失数据处理方法解释DataFrame.backfill([axis, inplace, limit, …])后向填充,等同于DataFrame.fillna(method='bfill')DataFrame.bfill([axis, inplace, limit, downcast])同上DataFrame.dropna([axis, how, thresh, …])删除缺失值DataFrame.ffill([axis, inplace, limit, dow

2021-11-09 14:40:40 1489

原创 DataFrame详解——重新索引/选择/标签操作

重新索引/选择/标签操作方法解释DataFrame.add_prefix(prefix)为所有列名加前缀DataFrame.add_suffix(suffix)为所有列名加后缀DataFrame.align(other[, join, axis, level, …])用指定的联接方法联接两个对象,默认为outer joinDataFrame.at_time(time[, asof, axis])在一天中的特定时间选择值DataFrame.between_

2021-11-08 21:03:12 1152

原创 DataFrame详解——计算/描述性统计

计算/描述性统计方法解释DataFrame.abs()返回具有每个元素的绝对值的Series/DataFrameDataFrame.all([axis, bool_only, skipna, level])返回是否所有元素都是TrueDataFrame.any([axis, bool_only, skipna, level])返回是否有任何元素为TrueDataFrame.clip([lower, upper, axis, inplace])使用指定上下阈值替

2021-11-08 21:01:40 1022

原创 DataFrame详解——函数应用、GroupBy & window

函数应用、GroupBy & window方法解释DataFrame.apply(func[, axis, raw, …])为整个DataFrame/行/列应用func函数(作用域为Series)DataFrame.applymap(func[, na_action])为DataFrame的每个元素应用func函数(作用域为元素)DataFrame.agg([func, axis])按列使用指定方法聚合所有行,如:df.agg(['sum', 'min'])将

2021-11-08 20:58:35 314

原创 DataFrame详解——二元算子函数

二元算子函数方法解释DataFrame.add(other[, axis, level, fill_value])将DataFrame+other,对应列直接相加,不对应的列用fill_value完成相加,如:df1.add(df2,fill_value=3)将df1与df2的对应列相加,不对应的列用3来完成相加DataFrame.sub(other[, axis, level, fill_value])将DataFrame-other,对应列直接相减,不对应的列用fill_

2021-11-08 20:56:43 259

原创 DataFrame详解——索引/迭代

索引、迭代属性/方法解释DataFrame.head([n])返回前n行DataFrame.at基于标签获取指定行列处的单个元素,如:df.at[1,'col2']获取第1行第2列的元素DataFrame.iat基于整数获取指定行列处的单个元素,如:df.at[1,2]获取第1行第2列的元素DataFrame.loc通过标签访问一组行和列,如:df.loc[1]将第一行作为Series返回;df.loc[[1,2,3]]将第1,2,3行作为DataFrame返

2021-11-08 20:55:32 578

原创 DataFrame详解——转换

转换方法解释DataFrame.astype(dtype[, copy, errors])将各列强制转换为指定的类型(需要人为指定),如:df.astype({'col1': 'int64'})DataFrame.convert_dtypes([infer_objects, …])自动将各列转换为最佳的类型(无需人为指定)DataFrame.infer_objects()尝试为object类型的列推断更好的类型DataFrame.copy([deep])复制此

2021-11-08 20:49:18 2304

原创 DataFrame详解——属性和底层数据

DataFrame详解构造器DataFrame([data, index, columns, dtype, copy])DataFrame是二维、大小可变的表格数据。属性和底层数据属性解释DataFrame.indexDataFrame的索引(行标签)DataFrame.columnsDataFrame的列标签DataFrame.dtypes返回DataFrame中各列的类型DataFrame.info()打印DataFrame的简要摘要Dat

2021-11-08 20:46:17 687

原创 双向队列(Deque)在算法题中的应用

  本文由剑指offer第59题引出,不了解双向队列之前对这两道题很难有一个很好的解答。首先讲讲Deque的使用://定义Deque<Integer>queue=new LinkedList<>();//插入queue.offerFirst(value);queue.offerLast(value);//删除queue.pollFirst();queue.pollLast();//取队头/尾元素queue.peekFirst();queue.peekLast(

2021-11-03 11:37:53 240

原创 NLP实战——TextCNN实现新闻文本分类

本文介绍一个NLP中的常用模型——TextCNN。数据集来自天池新闻文本分类比赛数据,这里的文本已经经过匿名处理,可以到天池比赛地址下载数据集和查看模型在测试集上最终表现。import tensorflow as tfimport pandas as pdimport matplotlib.pyplot as pltfrom tensorflow.keras import layersfrom sklearn.model_selection import train_test_splitfrom

2021-11-03 11:05:05 2771 5

LUNA16(图像数据集)

网盘链接

2021-04-11

时序卷积网络(tcn)库文件

时间序列预测——时序卷积网络中用到的tcn库文件。

2021-04-11

mock_kaggle.csv

时间序列预测代码中所使用的数据集

2021-03-29

EVCapture-电脑录屏软件

一款免费好用的电脑录屏软件

2021-03-10

2019年王道电子版全套

2019年最新版的王道考研全套,包括数据结构,操作系统,计算机网络,计算机组成原理。

2019-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除