自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(35)
  • 收藏
  • 关注

转载 [译]Introduction to Concurrency in Spring Boot

当我们使用springboot构建服务的时候需要处理并发。一种错误的观念认为由于使用了Servlets,它对于每个请求都分配一个线程来处理,所以就没有必要考虑并发。在这篇文章中,我将提供一些建议,用于处理springboot中的多线程问题以及如何避免一些可能导致的情况。spring boot 并发基础当我们考虑springboot应用的并发的时候需要考虑的关键点有一下几个:最大线...

2019-09-10 21:20:00 180

转载 理解依赖注入

一个能够发挥功能的应用免不了各个组件之间相互协作,并随着项目的复杂度变高而变得复杂,这些协作就是所谓的依赖。传统的做法是每个对象负责管理与自己相关的对象(即它所依赖的对象)的引用,这将会导致高度耦合和难以测试的代码。比如:public class DamselRescuingKnight implements Knight { private RescueDamselQuest...

2019-08-29 21:06:00 237

转载 SpringBoot 参数校验的方法

Introduction有参数传递的地方都少不了参数校验。在web开发中,前端的参数校验是为了用户体验,后端的参数校验是为了安全。试想一下,如果在controller层中没有经过任何校验的参数通过service层、dao层一路来到了数据库就可能导致严重的后果,最好的结果是查不出数据,严重一点就是报错,如果这些没有被校验的参数中包含了恶意代码,那就可能导致更严重的后果。这里我们主要介绍...

2019-07-31 14:30:00 454

转载 watch命令的监控结果输出到文件

watch命令是为命令行输出设计的工具,其结果包含很多不可打印的字符,所以输出重定向到文件中很不方便,比如这样做的话有很多乱码:(watch -n 60 <mycommand> ) >> file.log所以可以的解决方法有两个把输出结果的语句写到command里面比如监控GPU的显存变化并写入日志watch -n 3 'nvidia-smi -q ...

2017-12-08 10:21:00 1452

转载 shell中日期循环的方式

第一种# 这里的例子以周为循环!/bin/bashbegin_date="20160907"end_date="20170226"while [ "$begin_date" -le "$end_date" ];do year=${begin_date:0:4} week_of_year=$(date -d "$begin_date" +%W) ec...

2017-11-22 12:57:00 303

转载 vim中处理重定向文件中的^H和^M

做实验的时候会把日志重定向写到文件中,方便以后查看。但是用vim打开之后出现很多^H和^M,就像乱码一样。如图所示:现在尝试在vim中解决这个问题。替换^H在vim中输入命令,表示把^H替换成空格(注意/ /之间有个空格):%s/^H/ /g解释:s : 表示替换操作%:“%” :表示整个文件。s前面的符号表示检索范围,省略时表示当前行。如:“1,20” :表示从第1行...

2017-11-22 12:53:00 228

转载 [DP]最长公共子序列

#include <iostream>#include <vector>#include <string>using namespace std;//最长公共子序列vector<vector<int> > getdp1(string str1, string str2) { vector<vector&...

2017-09-04 14:42:00 68

转载 [DP]最长公共子串

题目给定两个字符串str1和str2, 长度分别稳M和N,返回两个字符串的最长公共子串解法一这是一道经典的动态规划题,可以用M*N的二维dp数组求解.dp[i][j]代表以str1[i]和str2[j]当做公共子串结尾的情况下,公共子串能有多长.然后分析可以发现dp[i][j]只与dp[i- 1][j - 1]有关:当str1[i] 和str2[j]相等的时候, dp[i][j] ...

2017-09-04 14:42:00 114

转载 [DP]最长递增子序列

#include <iostream>#include <limits.h>#include <vector>#include <algorithm>using namespace std;//获取最长递增子序列的递增数组vector<int> getdp1(vector<int> arr) { ...

2017-09-04 14:41:00 51

转载 [DP]换钱的方法数

题目三给定数组arr, arr中所有的值都为整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,在给定一个整数aim代表要找的钱数,求换钱有多少种方法.解法一 --暴力递归用0张arr[0], 让arr[1...N-1]组成剩下的钱,这样的方法数记为res1用1张arr[0], 让arr[1...N-1]组成剩下的钱(aim - arr[0]),方法数记为res...

2017-09-04 13:54:00 76

转载 [DP]换钱的最小货币数

题目一给定数组arr,数组中有N个元素,其中所有的之都为整数且不重复.每个只代表一种面值的货币,每种面值的货币可以使用任意张,在给定一个整数aim代表要找的钱数,求组成aim的最少货币数.解法依然是用二维数组分析的动态规划问题,数组dp长为N行aim-1列.其中dp[i][j]代表用arr[0...i]中出现的面值构成钱数为j所需要的钱的最小张数.那么就有dp[i][j] = m...

2017-09-04 13:53:00 135

转载 [DP]矩阵的最小路径和

题目给定一个矩阵m, 从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的树子累加起来就是路径和,返回所有的路径中最小的路径和.解法一这是一道经典的动态规划题,状态转移方程为dp[i][j] = min{dp[i - 1][j], dp[i][j - 1]} + m[i][j].可以用一个二维的dp矩阵来求解.对于dp矩阵,第一行和第一列只会有一种走法,就是...

2017-09-04 13:47:00 144

转载 《剑指offer》二进制中1的个数

题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。代码:#include <iostream>using namespace std;//这种解法不用对n的位数进行移动int numberOf1(int n) { int cnt = 0; unsigned int flag = 1; ...

2017-03-16 10:39:00 82

转载 《剑指offer》重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。代码(c/c++):#include <iostream>#include <iterator>...

2017-03-16 10:38:00 59

转载 《编程之美》计算字符串的相似度

来自《编程之美》3.3题目:定义了三种不同的操作把不同的字符串变成相同1.修改一个字符;2.增加一个字符;3.删除一个字符;为了把两个字符串变得相同,每进行一次上述的某个操作,距离加1,最后定义两个字符串的相似度为“距离+1”的倒数。要求求出任意两个字符串的相似度。解法:#include<iostream>usingnamespa...

2017-03-16 10:36:00 70

转载 《编程之美》字符串移位包含的问题

(来自《编程之美》)给定两个字符串s1和s2,要求判断s2是否能够被s1做循环移位(rotate)得到的字符串包含。我的解法(想法比较复杂): 1 #include<iostream> 2 using namespace std; 3 bool isCover(string s1, string s2){ 4 int ...

2017-03-16 10:13:00 82

转载 常用排序算法总结

在面试或者数据结构相关的考试中,经常会被要求到的算法主要有插入排序、冒泡排序、归并排序和快速排序。对这几种算法,不但应该知道其原理或者过程,还应该对他们的各种特性了然于胸,从最好、最差、平均时间空间复杂度等方面对比其优劣。在面试中这几种排序算法也会经常作为手写代码能力的考量,所以应该要求自己对这几种算法的代码信手拈来。所以在此把几种算法详细记录一下。冒泡排序/***********冒...

2017-03-16 10:12:00 57

转载 推荐系统概述

推荐系统是联系用户和物品的媒介 ——项亮《推荐系统实践》是什么&为什么当我最开始用豆瓣FM的时候,很快我就喜欢上了这个产品。用它听歌的逻辑很简单,他给你放什么你就听什么,没得选,但是你可以做的是告诉它你喜不喜欢这首歌,喜欢的话就点亮页面上的红星,不喜欢的话就扔进垃圾...

2017-03-13 15:51:00 104

转载 推荐系统的评测方法

推荐系统是由一个或者多个算法和策略组成的这样一个系统,其商业价值在于实现产品提供者、产品用户以及推荐平三者的利益共赢。无论从算法的角度还是从商业的角度,效果好不好都是我们所关心的问题,所以实践者们对推荐系统系统提出了各种各样的评测指标来衡量其优劣性和适用性。在介绍这些评测指标之前,我们先要知道一般会用什么样的方式获得评测指标。在推荐系统中,主要有三种实验方式,用以获得不同的...

2017-03-12 22:19:00 207

转载 为什么spark中只有ALS

WRMF is like the classic rock of implicit matrix factorization. It may not be the trendiest, but it will never go out of style ...

2017-03-12 20:20:00 397

转载 python实现煲机脚本

生日的时候女票送了一副新耳机,还挺帅气。装逼界的人都知道,新耳机是有“煲”这个步骤的至于有没有效果?怎么煲?煲多久?这些问题都是耳机界常年争执的问题,各路高手分成各种门派常年杀伐不休,一不注意就可能引发圣战……这都是背景我一直以来都觉得自己是个“木耳”,也就是传说中的分不清音质好坏的家伙,属于耳机界的“麻瓜”平时不小心勿入听音器材的论坛或者是淘宝店的评论区都能深刻地感觉到自己不...

2017-03-01 15:23:00 157

转载 每天给女神自动爬取段子并自动发送

有一天女票跟我说,你给我讲几个笑话吧,我一时语塞。我虽然平时很喜欢看段子,有时候在知乎上看到牛逼的段子还会收藏一下,每天打开知乎日报必看的就是关于段子的“瞎扯”栏目,但是吧,我却从来都是没心没肺地呵呵乐一乐就完事儿,从来记不住一个两个段子。气氛顿时有点尴尬,连笑话都不会讲,对于把妹来说,这简直是硬伤啊!于是我痛定思痛,得想个办法。恰好,最近在学习爬虫,刚好...

2017-03-01 15:16:00 118

转载 Python远程连接MySQL数据库

使用Python连接数据库首先需要安装Python的数据库驱动。我的本地只装了Python,并没有装MySQL,当我使用命令:sudo pip install mysql-python安装驱动(也就是MySQLdb模块)的时候出现如下错误:EnvironmentError: mysql_config not found查资料 知道是因为没有安装下面两开发包:libmysqld...

2017-03-01 15:06:00 198

转载 爬虫IP被禁的简单解决方法

爬虫以前听上去好厉害好神秘的样子,用好了可以成就像Google、百度这样的索索引擎,用不好可以凭借不恰当的高并发分分钟崩掉一个小型网站。写到这里想到12306每年扛住的并发请求量,觉得好牛逼。爬虫和反爬虫从一直以来都是一个道高一尺魔高一丈的架势。反爬虫技术增加了爬取的难度,各路crawler的爬取过程可以说是一个和各种网站站长斗智斗勇的过程,各种解决方式可谓层出不穷,但是这里说是...

2017-03-01 15:03:00 14027

转载 python读取大文件只能读取部分的问题

最近准备重新研究一下推荐系统的东西,用到的数据集是Audioscrobbler音乐数据集。我用python处理数据集中artist_data.txt这个文件的时候,先读取每一行然后进行处理:with open('artist_data.txt','r')as f:  for line in f:    process(line)#对每行进行的具体处理但是我发现每次都处...

2017-03-01 14:58:00 600

转载 几个Python爬虫工具介绍

RequestRequests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用上面一句话 出自Requests官方文档的第一句,从而奠定了其逗逼的文档风格。类似的还有:警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。Request是一个基于urllib3的Python的...

2016-12-06 22:41:00 121

转载 爬虫基本知识之C/S交互

概念爬虫就是对网页的获取。一般获取的网页中又有通向其他网页的通路,我们叫做超链接,那么就可以通过这样的通路获取更多其他的网页,就像一只在网路上爬行的蜘蛛,所以俗称爬虫。爬虫的工作原理和浏览器浏览网页的原理类似,是请求/返回模式,就是说客户端向服务器提出访问某个页面的请求(request),服务器返回客户端请求的内容(response)。URL是表示互联网上每个文件的唯一标志,...

2016-12-06 21:25:00 149

转载 回归(三):岭回归

概念在回归(一)中提到用最小二乘法求解回归系数的过程中需要考虑特征矩阵是否可逆的问题,事实上当特征数量比样本数量多的时候(样本数m大于特征数n,X不是满秩矩阵)就会遇到这个问题,这个时候标准线性回归显然就无从下手了引入岭回归就是为了解决这个问题,它是最先用来处理特征数多余样本数的算法。该算法的基本思想是在XTX上加上一个λI使得矩阵非奇异,从而能够对XTX+λI求逆,其...

2016-10-11 20:54:00 1039

转载 回归(二):局部加权线性回归

前言回顾一下回归(一)中的标准线性回归:step1: 对于训练集,求系数w,使得最小step2: 对于新输入x,其预测输出为w*x从中我们知道,标准线性回归可能表达能力比较差,出现如图所示的欠拟合的情况(underfitting):我们可以通过添加诸如x2或sin(x)等特征重新拟合函数来解决这个问题,但是这里讨论另一种方法:局部加权回归(Locally Weighted Linear ...

2016-10-10 20:27:00 276

转载 回归(一):标准线性回归

概念线性回归(linear regression)意味着可以把输入项分别乘以一些常量,然后把结果加起来得到输出。这个输出就是我们需要预测的目标值而这些常量就是所谓的回归系数我们把求这些回归系数的过程叫做回归,这个过程是对已知数据点的拟合过程更一般化的解释来自Tom M.Mitchell的《机器学习》:回归的含义是逼近一个实数值的目标函数标准线性回归那应该怎么求回归系数w呢。一个常用的方法...

2016-10-10 20:03:00 461

转载 【5】SVM算法原理

大纲简介支持向量机(support vector machines)是一个二分类的分类模型(或者叫做分类器)。如图:它分类的思想是,给定给一个包含正例和反例的样本集合,svm的目的是寻找一个超平面来对样本根据正例和反例进行分割。各种资料对它评价甚高,说“ 它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中”SVM之线性分类器如果一个线...

2016-07-10 16:39:00 250

转载 降维和PCA

简介要理解什么是降维,书上给出了一个很好但是有点抽象的例子。说,看电视的时候屏幕上有成百上千万的像素点,那么其实每个画面都是一个上千万维度的数据;但是我们在观看的时候大脑自动把电视里面的场景放在我们所能理解的三维空间来理解,这个很自然的过程其实就是一个降维(dimensionallity reduction)的过程降维有什么作用呢?数据在低维下更容易处理、更容易使用;相关特征,特别是重要...

2016-05-26 12:01:00 89

转载 【4】Logistic回归

前言logistic回归的主要思想:根据现有数据对分类边界建立回归公式,以此进行分类所谓logistic,无非就是True or False两种判断,表明了这其实是一个二分类问题我们又知道回归就是对一些数据点拟合成线性函数,但是线性函数的值域是无穷的所以logistic和回归加在一起,就是要把取值范围从无穷映射到(0,1)上,使之成为一个二分类器所以本文会介绍怎么拟合一个回归函数,然后再...

2016-04-21 15:47:00 207

转载 【2】KNN:约会对象分类器

前言这是一个KNN算法的应用实例,参考《机器学习实战》中的datingTestSet2.txt的数据集。可以通过对不同约会对象的特征进行分析然后自动得出以下三种结论:不喜欢的有点魅力的很有魅力的准备数据这个数据集中针对每一个约会对象收集了三种具有代表性的特征,分别是:每年获得的飞行常客里程数玩网游所消耗的时间比每年消耗的冰淇淋公升数然后对每个约会对象的三种结论进行打分,对应的分数分别为1...

2016-04-20 14:33:00 230

转载 【1】KNN(K-nearest neighbors algorithm)

基本原理KNN算法又叫最近邻居法,是一种非常简单易于掌握的分类算法。其基本原理是,存在一个已知标签的数据集合,也就是训练样本集。这个样本集中的每一个数据所属的分类都是已知的。当一个没有标签的新数据需要确定自己属于哪个分类的时候,只需要把新数据的每个特征和训练集中的每个数据的特征进行比较,找出其中和新数据最相似(最近邻)的k个数据,算法取这k个数据中出现次数最多的标签作为新数据的类别。通常...

2016-04-20 14:26:00 74

空空如也

空空如也

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

TA关注的人

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