自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(382)
  • 资源 (5)
  • 收藏
  • 关注

原创 vim指令操作大全

vim指令操作大全Vim 是一个高度可配置的文本编辑器,旨在高效地创建和更改任何类型的文本,将平时用到的指令的全部都积累下来,便于日后复习。文章目录vim指令操作大全前言一、vim基础操作二、vim高级操作总结前言Vim 是一个高度可配置的文本编辑器,旨在高效地创建和更改任何类型的文本。 它作为“vi”包含在大多数 UNIX 系统和 Apple OS X 中。Vim 非常稳定,并且正在不断开发以变得更好,操作非常便捷,非常方便。 它的特点包括:持久的、多级撤消树广泛的插件系统支持数百种编程语言和

2022-05-01 22:08:28 926

原创 mybatis框架入门——环境搭建及入门案例

什么是框架(1)框架是软件开发中的一套解决方案,不同的框架解决的是不同的问题。(2)使用框架的好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能,大大提高开发效率。三层架构(1)表现层:用于展示数据(2)业务层:处理业务需求(3)持久层:和数据库交互持久层技术解决方案(1)JDBC技术ConnectionPreparedStatementResultSet(2)Spring的JdbcTemplate:Spring中对jdbc的封装(3)Apache的DBUtils:

2021-03-19 14:56:12 134 3

原创 Spring事务管理

事务概念(1)什么是事务事务是数据库操作的最基本单元,逻辑上一组操作,要么都成功,如果有一个失败,则所有操作都失败。典型场景:银行转账(2)事务四个特性(ACID)原子性一致性隔离性持久性搭建事务操作环境——银行转账银行转账(1) Dao:数据库操作,创建两个方法:少钱的方法和多钱的方法(2)Service:业务操作,创建转账的方法,调用Dao里边的两个方法代码实现(1)创建数据库表,添加记录mysql> create table t_account( -

2021-03-11 16:23:36 52

原创 JdbcTemplate操作数据库——批量添加、修改和删除

批量操作:操作表里面多条记录JdbcTemplate批量添加batchUpdate(String sql, List<Object[]> batchArgs)第一个参数:SQL语句第二个参数:List集合,添加的多条数据记录BookDao.java // 批量添加 void batchAdd(List<Object[]> batchArgs);BookDaoImpl.java // 批量添加 @Override public

2021-03-10 21:41:16 745 1

原创 JDBCTemplate操作数据库——添加、修改、删除和查询(附完整代码)

什么是JDBCTemplateSpring框架对JDBC进行封装,使用JDBCTemplate方便实现对数据库操作。JDBCTemplate准备工作引入相关jar包☞ 戳我下载相关jar包在Spring配置文件中配置数据库连接池 <!--数据库连接池--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">

2021-03-09 22:09:49 2019 1

原创 macOS安装MySQL教程

1. 下载dmg格式的安装包☞ 戳我下载 download … …2. 双击dmg安装包加载镜像3. 双击pkg文件开始安装4. 一路点击继续,完成安装5. 点击cmd+空格键,输入MySQL打开MySQL6. MySQL配置点击Start MySQL Server按钮启动MySQL,取消Start MySQL when your computer starts up前边的对勾,设置开机不启动(为了省电)7. 终端连接MySQL为PATH路径添加MySQL的bin目录PAT

2021-03-09 20:33:40 160

原创 AOP原理与操作

什么是AOP(1)面向切面编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能。AOP底层原理1. AOP底层使用动态代理(1)有接口情况:使用JDK动态代理,创建接口实现类的代理对象,增强类的方法。(2)没有接口情况:使用CGLIB动态代理,创建当前类的子类代理对象,增强类的方法。2. AOP(JDK动态代理)(1)使用JDK动态代理,使用Proxy

2021-03-08 20:43:15 52

原创 IOC操作Bean管理(基于注解方式)

什么是注解(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值...)(2)使用注解,注解作用在类上面、方法上面、属性上面(3)使用注解的目的:简化XML配置Spring针对Bean管理中创建对象提供注解(1)@Component(2)@Service(3)@Controller(4)@Repository*上边四个注解的功能是一样的,都可以用来创建bean实例基于注解方式实现对象创建第一步,引入依赖. 第二步,开启组件扫描 <!--.

2021-03-08 10:37:57 49

原创 IOC操作Bean管理(XML方式)

什么是Bean管理(1)Spring创建对象(2)Spring注入属性Bean管理操作的两种方式(1)基于XML配置文件方式实现(2)基于注解方式实现Bean管理(基于XML)① 基于XML方式创建对象(1)在Spring配置文件中,使用bean标签,标签里边添加对应属性,就可以实现对象创建。<!--配置User对象创建--> <bean id="userDao" class="com.wxm.UserDao"></bean>(2)bean标

2021-03-03 15:54:23 67

原创 IOC概念及原理

1、什么是IOC?控制反转:把对象创建和对象之间的调用过程,交给Spring进行管理。使用IOC的目的:降低耦合度。Spring入门案例是IOC的实现2、IOC底层原理XML解析工厂模式反射3、图解IOC原理IOC过程(1)XML配置文件,配置创建的对象<bean id="userDao" class="com.wxm.UserDao"></bean>(2)有UserService类和UserDao类,创建工厂类class UserFactory

2021-02-28 12:11:33 824

原创 Spring框架概述及入门案例

Spring的概述1、Spring是轻量级的开源的JavaEE框架;2、Spring可以解决企业应用开发的复杂性;3、Spring有两个核心部分:IOC和AOP;IoC(Inverse of Control:控制反转):把创建对象的过程交给Spring进行管理;AOP(Aspect Oriented Programming:面向切面编程):不修改源代码进行功能增强。4、Spring的特点方便解耦,简化开发AOP编程的支持声明式事务的支持方便程序的测试方便集成各种优秀框架降低Ja

2021-02-23 17:30:46 120 1

原创 vim配置

Vim 的全局配置一般在/etc/vim/vimrc或者/etc/vimrc,对所有用户生效。用户个人的配置在~/.vimrcset nocompatible " be iMproved, requiredfiletype off " requiredfiletype plugin indent on " requiredfiletype indent on " 开启文件类型检查,并且载入与该类型对应的缩进规则" To ignor

2020-11-24 15:33:02 130

转载 LR与SVM的区别

LR采用log损失,SVM采用合页损失。LR对异常值敏感,SVM对异常值不敏感。在训练集较小时,SVM较适用,而LR需要较多的样本。LR模型找到的那个超平面,是尽量让所有点都远离他,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽量远离,即只用到那些支持向量的样本。对非线性问题的处理方式不同,LR主要靠特征构造,必须组合交叉特征,特征离散化。SVM也可以这样,还可以通过kernel。svm 更多的属于非参数模型,而logistic regression 是参数模型,本质不同。其区别就可.

2020-09-15 11:36:56 390

转载 常见的损失函数

1. 损失函数、代价函数、目标函数损失函数(Loss Function)通常是针对单个训练样本而言,给定一个模型输出y^\hat{y}y^​和一个真实yyy,损失函数输出一个实值损失L=f(yi,yi^)L=f(y_i,\hat{y_i})L=f(yi​,yi​^​)。代价函数(Cost Function)通常是针对整个训练集(或者是mini-batch Gradient Descent时一个mini-batch)的总损失J=Σi=1Nf(yi,yi^)J=\Sigma^N_{i=1}f(y_i,\h

2020-09-15 10:30:29 247

转载 Pytorch与TensorFlow的区别

1. 实现方式:符号式编程和命令式编程TensorFlow是纯符号式编程,通常是在计算流程完全定义好后才执行,因此效率更高,但是实现比较复杂;pytorch是纯命令式编程,实现方便,但是运行效率低2. 图的定义:动态定义和静态定义两个框架都是在张量上运算,但是存在很大差别。TensorFlow遵循”数据即代码,代码即数据“的概念,可以再运行之前静态的定义图,然后调用session来执行图。pytorch中图的定义是动态变化的,可以随时定义、更改和执行节点。因此pytorch更加灵活,方便调

2020-09-14 10:09:31 3800

原创 记第一次完整的实习经历

明天转正答辩,实习结束的最后几天没有什么任务,刚好又要准备转正答辩,坐下来静心梳理一下整个实习期的经历叭。2020年由于新冠疫情,过完年后学校没有开学,明年即将毕业的我在家颓废了3个月,4月初的时候决定在学校所在的城市上海找一份实习,一来可以改变颓废已久的生活,二来也借此机会为毕业后正式找工作做准备。于是开启疯狂的网上投简历模式,但是投简历的周期并不长,当拿到一家创业公司的offer时便停止了,这家公司是主要做AI的,岗位是算法实习生,和我的研究生方向还挺契合的,于是我收拾行李告别老家来到了上海准备入职。

2020-09-02 15:16:41 634

原创 机器学习面试汇总

L1不可导的时候该怎么办当损失函数不可导,梯度下降不再有效,可以使用坐标轴下降法,梯度下降是沿着当前点的负梯度方向进行参数更新,而坐标轴下降法是沿着坐标轴的方向,假设有m个特征个数,坐标轴下降法进参数更新的时候,先固定m-1个值,然后再求另外一个的局部最优解,从而避免损失函数不可导问题。最大似然估计和最大后验概率的区别最大似然估计提供了一种给定观察数据来评估模型参数的方法,而最大似然估计中的采样满足所有采样都是独立同分布的假设。最大后验概率是根据经验数据获得难以观察量的点估计,与最大似然最大的不同是

2020-08-31 09:21:55 49

转载 优化方法总结:SGD,Momentum,AdaGrad,RMSProp,Adam

1. SGDBGD(Batch Gradient Descent)在每一轮的训练过程中,使用所有的样本计算cost function的梯度,并用该梯度对模型参数进行更新。a) 优点如果cost function为凸函数,能够保证收敛到全局最优值;如果为非凸函数,能够收敛到局部最优值。b) 缺点由于每轮迭代都需要在整个数据集上计算一次,所以批量梯度下降可能非常慢训练数较多时,需要较大内存批量梯度下降不允许在线更新模型,例如新增实例。SGD(Stochastic Gradient De

2020-08-30 13:25:12 1525

转载 梯度消失和梯度爆炸

1. 问题简述1)梯度消失如下图,当梯度消失出现时,靠近输出层的hidden layer3权值更新相对正常,但是靠近输入层的hidden layer1权值更新变得很慢,导致靠近输入层的隐藏层权值几乎不变,仍接近于初始化的权值。这就导致hidden layer1相当于只是一个映射层,对所有的输入做了一个函数映射,该神经网络的学习等价于只有后几层的隐藏层在学习。2)梯度爆炸如下图,当初始的权值过大,靠近输入层的hidden layer1权值变化比靠近输出层的hidden layer3权值变化更快,就会引

2020-08-22 16:54:21 1385

转载 LSTM与RNN的区别

1. RNNRNN能够处理一定的短期依赖,但无法处理长期依赖问题。因为当序列较长时,序列后部的梯度很难反向传播到前面的序列,这就产生了梯度消失问题。当然,RNN也存在梯度爆炸问题,但这个问题一般可以通过梯度裁剪(gradient clipping)来解决。RNN网络结构如下:hth_tht​为timestep t的隐藏层状态值,xtx_txt​为输入,hth_tht​实际上还要经过softmax或者别的函数处理得到输出y^t\widehat{y}_ty​t​。上图中RNN单元的计算公式为:ht=

2020-08-21 12:31:43 2857

转载 解决过拟合

获取和使用更多的数据集对于解决过拟合的办法就是给与足够多的数据集,让模型在更可能多的数据上进行“观察”和拟合,从而不断修正自己。然而事实上,收集无限多的数据集几乎是不可能的,因此一个常用的办法就是调整已有的数据,添加大量的“噪音”,或者对图像进行锐化、旋转、明暗度调整等优化。另外补充一句,CNN在图像识别的过程中有强大的“不变性”规则,即待辨识的物体在图像中的形状、姿势、位置、明暗度都不会影响分类结果。采用合适的模型目前来说,针对不同的情况和分类要求,对使用的模型也是千差万别。过于复杂的模型会带来过

2020-08-13 12:43:11 132

原创 调用不同文件夹下的的py文件

文件路径如下:folder——sub_folderAa.py——sub_folderBb.py在b.py中调用a.py,需要在b.py中添加如下代码import ospath = os.getcwd() #获得文件的根目录sys.path.append(path)from sub_folderA import a

2020-07-08 14:23:08 181

原创 Mac设置matplotlib显示中文

直接加上下边的代码即可,不用下载字体库import matplotlib.pyplot as pltplt.rcParams["font.family"] = 'Arial Unicode MS'

2020-07-07 15:09:20 367

原创 机器学习——特征工程之特征选择

1. 特征选择1. 过滤法1)方差筛选方差越大的特征,我们认为一般比较有用,设定方差阈值,舍弃方差小于阈值的特征2)相关系数筛选主要用于输出连续值的监督学习算法中,计算所有训练集中各个特征与输出值之前的相关系数,设定阈值,选择相关系数较大的部分特征3)假设检验,如卡方检验、F检验和T检验。在sklearn中,可以使用chi2做卡方检验得到所有特征的卡方值与显著性水平P临界值,设定卡方阈值,选择卡方值较大的部分特征4)互信息参考决策树中互信息2. 包装法最常用的包装法是递归消除特征法(re

2020-07-05 19:13:47 135

原创 Git命令

新建分支git branch test_name查看本地分支git branch查看本地分支和远程分支git branch -a切换分支git checkout test_name将test_name1内容复制到本分支git merge test_name1查看分支状态git status查看本地修改的内容git diff提交git add filegit commit -m "fix bug"git push origin t.

2020-07-03 17:03:44 59

原创 Linux常用命令

Linux创建账户sudo useradd -d /home/username -g dlg -m usernamesudo passwd wxm注解: -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用.

2020-07-03 16:55:16 71

原创 特别好用的一些网站收藏

查询文件后缀:https://www.filedesc.com/zh/

2020-07-02 21:54:32 100

原创 论文笔记(NLP)——Sentiment Classification using Document Embeddings trained with Cosine Similarity

1. AbstractDocument embedding将每个文档映射到连续向量空间中一个密集的低维的向量。本文提出了使用余弦相似度(cosine similarity)代替点积(dot product)来训练document embedding。数据集:IMDB实验表明:与dot product相比,使用cosine similarity可以提高准确性;将naive bayes的n-grams袋的feature combination加权使用可以达到97.42%的准确率。2. Intro

2020-05-22 16:09:45 407

原创 论文笔记(NLP)——Convolutional Neural Networks for Sentence Classification

摘要本篇论文报告了一系列用预训练词向量上训练的CNN进行句子级分类任务的实验。展示了有少量参数调整和静态向量的简单的CNN在多个基准上达到了很好的效果。通过微调学习特定任务的向量能够进一步提高性能。另外本篇论文对结构进行简单的修改以允许使用特定任务和静态向量。本文讨论的CNN提高了7个任务中的4个技术,包括情感分析和问题分类。...

2020-05-22 10:53:21 128

原创 LeetCode——最长公共子序列

题目描述给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。...

2020-05-04 19:49:10 137 1

原创 LeetCode——电话号码的字母组合

题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].题解:深度优先搜索def DFS(idx, lst, tmp, res): if id...

2020-05-04 19:16:30 70

原创 LeetCode——最接近的三数之和

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).题解:1,与上一题思路相似2,双指针法c...

2020-04-30 16:39:17 96

原创 LeetCode——三数之和

题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]题解:1,排序2,双...

2020-04-24 10:09:35 105

原创 LeetCode——罗马数字转整数

题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的...

2020-04-24 09:08:41 91

转载 机器学习——交叉验证

交叉验证是在机器学习建立模型和验证模型参数时常用的办法。交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。 那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候。比如在我日常项目里面,...

2020-04-23 10:18:11 223

原创 LeetCode—— 整数转罗马数字

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...

2020-04-23 09:44:53 93

转载 机器学习——最小二乘法

最小二乘法是用来做函数拟合或者求函数极值的方法。最小二乘法的原理目标函数=∑(观测值−理论值)2目标函数=\sum(观测值-理论值)^2目标函数=∑(观测值−理论值)2观测值就是我们的多组样本,理论值就是我们的假设拟合函数,目标函数就是机器学习中的损失函数,我们的目标就是得到使目标函数最小时的拟合函数的模型。代数法求解对参数θiθ_iθi​分别求偏导,令偏导数为0,求解方程组。矩阵法求...

2020-04-22 15:14:32 712

转载 机器学习——梯度下降(Gradient Descent)

梯度下降算法调优算法的步长。步长的实际取值取决于数据样本,可以夺取一些值,从大到小,分别运行算法,看迭代效果。如果损失函数在变小,说明取值有效,否则就要增大步长。步长太大,会导致迭代过快,甚至会错过最优解;步长太小,迭代速度太慢,很长时间算法都不能结束,所以算法的步长需要多次运行后才能取一个较为优的值。算法参数的初始值选择。初始值不同,获取的最小值也有可能不同,因此梯度下降求得的只是...

2020-04-22 14:43:57 213

原创 LeetCode——盛最多水的容器

给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色...

2020-04-22 10:53:25 78

转载 机器学习——凸优化

在很多机器学习算法中,都会遇到最优化问题。因为我们机器学习算法,就是要在模型空间中找到这样一个模型,使得这个模型在一定范围内具有最优的性能表现。很多最优化问题都是在目标函数是凸函数或者凹函数的基础上进行的。原因很简单,凸函数的局部极小值就是其全局最小值,凹函数的局部极大值就是其全局最大值。因此,只要我们依据一个策略,一步步地逼近这个极值,最终肯定能够到达全局最值附近。凸函数与凹函数判断...

2020-04-18 20:34:14 423

mysql-connector-java-8.0.13.jar.zip

mysql-connector-java-8.0.13.jar.zip

2021-03-09

JDBCTemplate相关依赖下载.zip

com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.6.release.jar commons-logging-1.2.jar druid-1.0.9.jar mysql-connector-java-5.1.7-bin.jar spring-aop-5.3.4.jar spring-aspects-5.3.4.jar spring-beans-5.3.4.jar spring-context-5.3.4.jar spring-core-5.3.4.jar spring-expression-5.3.4.jar spring-jdbc-5.3.4.jar spring-orm-5.3.4.jar spring-tx-5.3.4.jar

2021-03-09

Spring5,AOP相关jar包.zip

com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.6.release.jar commons-logging-1.2.jar druid-1.0.9.jar spring-aop-5.3.4.jar spring-aspects-5.3.4.jar spring-beans-5.3.4.jar spring-context-5.3.4.jar spring-core-5.3.4.jar spring-expression-5.3.4.jar

2021-03-08

黑盒测试用例设计方法

2016-08-09

二分图匹配

设G是一个图。如果存在VG的一个划分X,Y,使得G的任何一条边的一个端点在X中,另一个端点在Y中,则称G为二分图,记作G=(X,Y,E)。如果G中X的每个顶点都与Y的每个顶点相邻,则称G为完全二分图。

2015-08-08

空空如也

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

TA关注的人

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