自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SL_World的博客

磕盐就像爬山一样,山顶只有一个,而到达山顶的路却有很多,找到其中最优美的一条是大家共同的心愿

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

原创 本人CSDN博客与知乎/公众号撰写内容区分通知

在此期间,首先感谢各位朋友的关注,是你们的支持才有我创作的动力。在过去的时间里,我分别在个人的CSDN、知乎、微信公众号和b站上撰写过一些文章或投稿过视频,通过在三个平台上的内容领域和质量观察,未来计划根据三个不同的平台撰写针对性的内容,具体撰写内容计划如下:本人CSDN:未来主要撰写关于运维、平台部署、各类bug解决、Leetcode等偏代码的内容本人知乎【阿亮算法】:未来主要撰写强化学习算法、xx算法原理、个人学习or科研心得、生活体会和思考等抽象类内容本人公众号【阿亮算法】:未来主要

2021-03-07 12:34:02 830 8

原创 【矩阵论】特征值的估计(上下界和盖尔圆)

前言:为什么不直接求特征值而是去估计特征值?当我们遇到的不是书本上的3阶或4阶矩阵,而是高阶矩阵时(如图像中的256×256),我们再使用特征方程det⁡(λI−A)=0\det(\lambda I -A)=0det(λI−A)=0来求特征值就非常困难。我们难以求解也没有必要逐一计算每一个精确的特征值。因此,在实际工程计算上,面对高阶矩阵,我们常常通过计算特征值的范围来估计特征值,这个范围越小,所估计的特征值就越精确。以下,本文就特征值估计常用方法做以梳理,完整定理证明请参考西工大的《矩阵论》[1]。思

2020-06-04 22:38:43 13187 3

原创 常用正则表达式匹配Antconc英文句式搭配

引言:标准英文句式不会写?逐个百度google太麻烦?快用Antconc啊,导入语料仅需几步操作即可帮你分析词频,找到常用搭配!文章目录一、正则常用特殊字符二、正则常用元字符三、英文常用词性对照表整理四、使用案例附录-完整词性表一、正则常用特殊字符字符描述^匹配输入字符串的开始位置。$匹配输入字符串的结束位置。*匹配前一个子表达式零次或多次。例如,z...

2020-03-27 16:31:57 14339 2

原创 带你玩转谱聚类及拉普拉斯矩阵

引言:在多变量统计和数据聚类中,谱聚类(Spectral Clustering)技术利用数据的相似矩阵的谱(特征值)进行降维。它将数据看成空间中的点,点对之间有边相连,距离越远的点对其边权值越小,距离越近的点对其边权值越大。它将聚类问题转化为切图问题,使得切图后的总代价最小。即子图内点对之间边权值较大,子图间边权值较小。得到切图后子图的个数即为聚类的个数。最后本文力求用推理而非演绎的方式以加深大...

2020-02-21 10:29:06 14234 21

原创 Python构建共现矩阵并将其三元组形式存储至csv文件

引言:共现矩阵有什么用?主要用于发现主题,解决词向量相近关系的表示;将共现矩阵行(列)作为词向量,其表现形式类似于数据结构中图论里学的邻接矩阵。在本文中,笔者主要用来统计会议论文作者之间的合作关系。【举例】:假设有三篇论文,每篇论文作者名字如下。我们根据上述原始数据构建如下共现矩阵,由如下矩阵可以看出,Yang Liu和Wenwu Zhu在上述窗口中共同出现(co-occurrence)...

2019-11-27 16:39:29 8211 18

原创 基于Django+LayUI+HBase的文献数据挖掘系统的实现

引言:本系统的目标是设计并实现一个基于分布式数据库HBase的文献数据挖掘系统,以帮助科研人员分析出相关科技前沿领域的专家、机构等的学术影响力。并挖掘领域高频词和不同协作者之间的关系图谱,如此便可达到科研决策支持的目的。以下将从几个方面进行简要介绍。一、开发意义科研文献是科技与学术的载体,高效的分析科研文献对科技的发展有着重要的推动作用。准确地提取出期刊会议中科研文献元数据里所隐藏的信息,...

2019-06-01 13:37:16 3643 2

原创 基于点击和滑轮事件的任意缩放和平移HTML中SVG解决方案

SVG概述:SVG是可缩放矢量图形(Scalable Vector Graphics),它基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。Tips欲看以下完整代码、js文件和svg文件,请移步我的GitHub。一、SVG特点简述百度上有SVG的一大堆介绍,这里就不细细说明,仅摘出重点,SVG主要特点是:不失真——因为是矢量图支持任意缩放——可用于地图存储存储介...

2019-04-08 20:29:42 3862 13

原创 手把手教你上手Gephi制作基于共现矩阵的论文作者关系图谱

引言:Gephi是一款开源免费跨平台基于JVM的复杂网络分析软件,其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具。——摘自百度百科提前预览下我们要做出来关系图谱有木有很心动的感觉?!!那就赶快和我一起上车吧✿✿ヽ(°▽°)ノ✿一、数据准备①节点数据:对于大规模节点和复杂的关系,无法通过手动一个一个节点的添加,往往通过程序处理好程序存储在xlsx表格或csv文...

2019-04-06 11:25:41 17984 11

原创 文本挖掘之WordCloud+Python3快速生成中英文词云图

引言: “词云”,又称文字云,是由词汇组成类似云的彩色图形。可对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成"关键词云层"或"关键词渲染",从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。       &am

2019-03-18 12:21:03 5934

原创 浅谈Python3中的编码解码问题和不同编码间的转换

前言:众所周知,Python的编码解码是一个令人头疼的问题。正好笔者最近做项目时遇到了这个问题,且编码解码问题在大多数语言中都会遇到。遂借此机会重新深入学习一下并写此学习笔记。 在讲编码解码之前,需要先引入几个常用的编码方式,即:ASCII码Unicode码UTF-8码(UTF-16码、UTF-32码…)GB2312码(中文)、Shift_JIS码(日语)、Euc-kr码(韩语...

2019-03-10 17:05:49 1829 2

原创 Python实战异步爬虫(协程)+分布式爬虫(多进程)

引言:我们在写爬虫时常会遇到这样的问题,当需要爬取多个URL时,写一个普通的基于requests库的爬虫程序爬取时间会很长。因为是顺序请求网页的,而网页请求和获得响应过程比较耗费时间,程序不得不等待获得当前网页响应后才能进行下一个URL的爬取,使得总耗时较多。对于这样的多任务,可以使用基于多进程(multiprocessing)和基于Asyncio库的异步(协程)爬虫增强并发性,加速爬虫。T...

2019-01-24 21:32:32 22898 30

原创 Python异步IO之协程(一):从yield from到async的使用

引言:协程(coroutine)是Python中一直较为难理解的知识,但其在多任务协作中体现的效率又极为的突出。众所周知,Python中执行多任务还可以通过多进程或一个进程中的多线程来执行,但两者之中均存在一些缺点。因此,我们引出了协程。为什么需要协程?首先,我们需要知道同步和异步是什么东东,不知道的看详解。简单来说:【同步】:就是发出一个“调用”时,在没有得到结果之前,该“调用”就不...

2019-01-22 17:03:00 23483 58

原创 Python中的可迭代对象、迭代器和生成器的异同点

最近在学Python里异步IO中的协程,协程最初是由生成器变形的yield而来,感觉学完理解有些困难,故此再来回顾一下之前学习的生成器。在Python学习之初比较容易混淆可迭代对象、迭代器和生成器。因此,做以总结以辨析其中关键的区别。以下仅为习后个人理解,如有偏差,还请指出!Talk is cheap,show me the picture!解释之前,我们先来看一张概览图,下面是一张关于容...

2019-01-16 18:12:01 5859 13

原创 红黑树原理浅谈(附Linux内核源码注释)

引言:红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在Leo J. Guibas和Robert Sedgewick于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在 O(l...

2018-11-28 15:04:21 2044 2

原创 LL(1)预测分析程序C++实现

已知文法G如下,通过已知的预测分析表,输入要分析的字符串,得到分析结构附后。已知文法G:E->TE'E'->+TE'E'->eT->FT'T'->*FT'T'->eF-&amp

2018-06-05 23:49:07 7917 5

原创 感知机对偶形式C++实现

首先,分享以下我学习李航老师的《统计学习方法》中感知机对偶形式学习笔记,如有错误或者其他见解,恳请指正感知机的原始形式请参考我的另一篇blog:《感知机原始形式C++实现》 下面直接上代码,此处我用的是C++代码用STL中的向量实现存储,当然也可以用数组或者其他方式,感知机的对偶形式代码如下:#include <iostream>#include &...

2018-04-30 13:40:12 701 2

原创 感知机原始形式C++实现

首先,分享以下我学习李航老师的《统计学习方法》中感知机原始形式学习笔记,如有错误或者其他见解,恳请指正。感知机的对偶形式请参考我的另一篇blog: 感知机对偶形式C++实现 感知机的原始形式如下: 下面直接上代码,此处我用的是C++代码用STL中的向量实现存储,当然也可以用数组或者其他方式,感知机的原始形式代码如下:#include &l...

2018-04-30 11:48:14 1383

原创 堆排序及其优化过程总结

引言:众所周知,堆排序算法是高级排序算法中的一种,平均时间复杂度为O(nlogn),算法思想是:先把带排序的记录构造成堆,然后通过从堆中不断选取最小/大元素,从而达到排序的目的。本文将以最大堆为例从三个点依次讨论堆排序的优化,即从基础堆排序到heapify、再到原地堆排序讨论。以下共有三个堆排序算法(heapSort1、heapSort2、heapSort3)依次由浅入深讨论。(动图源于网络)

2018-01-22 18:04:57 2331

原创 快速排序及其优化过程总结

引言:众所周知,快速排序算法是基于分治策略的一个排序算法,基本的算法在数据结构或算法设计与分析中都有讲解,本文不再赘述。本文主要总结的是快速排序的优化过程,即从一个基本的快速排序如何根据其中的缺陷一步一步优化来的。以下共有四个快排算法(qSort1、qSort2、qSort3、qSort4)依次由浅入深讨论。(动图源于网络) 1.基本快速排序法如图所示:设基准为划分数组的第一个元素,

2018-01-19 19:56:02 804

原创 MySQL数据库设置远程异地可访问账号&&异地登录方法

一、确认MySQL服务能在专用网络和公用网络上同时能通过防火墙进行通信重要的事情说三遍:一定要看防火墙,防火墙,防火墙!!这一步如果没有通过,MySQL的3306端口直接无法被访问。 Ps.以下以Win10系统为例,不同版本系统核心步骤相同。 通过控制面板->Windows防火墙->允许应用或功能通过Windows防火墙 找到MySQL服务,同时勾选专用和公用网络即可!!

2017-10-28 17:33:48 6517

原创 【操作系统真象还原】Mac安装配置bochs

0 本机环境macOS Big Sur 11.1Bochs 2.6.21 Bochs下载解压去「Bochs官网下载地址」下载bochs-2.6.2.tar.gz手动解压bochs-2.6.2.tar.gz压缩包 或 终端解压tar zxvf bochs-2.6.2.tar.gz下面进入到Bochs的安装目录:$ cd bochs-2.6.2即将进行configure(配置 && 检测当前平台是否拥有所需依赖软件包,完成后生成Makefile)make(由Ma

2022-04-30 17:42:42 3005 2

原创 Mac终端主题文字修改

1 主题下载在github上下载Solarized主题源码链接:https://github.com/altercation/solarized然后进入该主题下的solarized-master/osx-terminal.app-colors-solarized目录中分别双击以下两个文件Solarized Light ansi.terminalSolarized Dark ansi.terminal2 终端偏好设置在偏好设置中设置solarized主题为默认,同时可进行字体大小等修改

2022-04-29 15:15:47 883

原创 Mac重装Homebrew

由于在更新brew时遇到问题,因此决定重装brew1. 卸载原有brew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"中间可能需要输入密码,忽略可能出现的warning,直到最后卸载成功2. 安装新的brew/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/ma

2022-04-29 13:53:35 6327

转载 Matplotlib 绘制平滑曲线

文章出处:https://www.delftstack.com/zh/howto/matplotlib/matplotlib-plot-smooth-curve/文章目录引言一、使用 `scipy.ndimage.gaussian_filter1d()` 高斯核类绘制平滑曲线二、使用 `scipy.interpolate.make_interp_spline()` 样条插值类绘制平滑曲线三、使用 `scipy.interpolate.interp1d` 插值类绘制平滑曲线引言使用 scipy.ndi

2021-10-15 20:13:12 26566 1

转载 SCI论文配色-matplotlib分类柱状图绘制

原文出处:https://cloud.tencent.com/developer/article/17905331 引言今天在查看资料时,看见一篇SCI论文的配图十分抢眼,图表的整体绘制不是很难,但整个配色还是瞬间让图表“高大上”起来,如下:2 SCI配色设计我们使用 FastStone Capture 软件对所需颜色进行吸取,然后对刻度、轴脊梁、字体等进行设计,具体代码如下:#构造数据labels = ['L1', 'L2', 'L3', 'L4', 'L5']data_a = [20,

2021-10-13 20:55:12 8126 1

转载 Matplotlib在学术论文中的柱状图绘制

原文出处:https://cloud.tencent.com/developer/article/16640881 引言柱状图或条形图在学术论文中使用的频率还是很大的,图中需要以不同颜色对不同数据进行区分,但当涉及黑白打印时,色彩颜色的区别度较小,导致难以理解,因此需要绘制黑灰颜色或者黑白阴影的柱状图或者条形图,下面就具体介绍使用Python-matplotlib 的实现过程。2 可视化绘制matplotlib绘制这种柱状图或者条形图还是比较简单的,主要涉及的知识点就是ax.bar()方法的应用,首

2021-10-13 20:51:42 5000

原创 Leetcode|递归分治法|面试题 08.06. 汉诺塔问题

1 递归分支法用数学归纳法解决n = 1,盘子从A直接移动到Cn = 2n = k,将A上n-1个盘子移动到B,然后将最底下的盘子移动到C,最后将B中的盘子移动到Cclass Solution {public: void hanota(vector<int>& A, vector<int>& B, vector<int>& C) { int n = A.size(); move(n, A,.

2021-09-15 22:17:58 324

原创 Leetcode|二分+缩小右区间去重|154. 寻找旋转排序数组中的最小值 II

1 二分+缩小右区间去重情况1——nums[mid]在最小值右边或就是最小值情况2——nums[mid]在最小值左边对于重复数组,又多了情况三情况3——nums[mid]和nums[right]相等重复class Solution {public: int findMin(vector<int>& nums) { int size = nums.size(); int left = 0, right = size -.

2021-09-12 16:27:09 219

原创 Leetcode|二分查找|153. 寻找旋转排序数组中的最小值

1 二分查找(注意右边界控制)情况1——nums[mid]在最小值右边或就是最小值情况2——nums[mid]在最小值左边class Solution {public: int findMin(vector<int>& nums) { int size = nums.size(); int left = 0, right = size - 1; // 不能是left <= right, 当nums={2,.

2021-09-12 15:59:40 309

原创 Leetcode|快慢指针|61. 旋转链表

1 快慢指针class Solution {public: ListNode* rotateRight(ListNode* head, int k) { if (!head || k == 0) return head; int size = 0; auto node = head; // 记录链表长度为size while (node) { size++; ..

2021-09-09 17:02:15 173

原创 Leetcode|快排|912. 排序数组

1 快速排序(随机pivot)为什么随机取pivot能避免最坏的情况呢?假设数据是完全随机的话,固定取最后一个数作为pivot,和随机取pivot,达成pivot本身有序的概率是相等的。但实际情况并非如此,实际的数据里有序的情况是多于完全无序的情况的,所以随机取pivot能减少最坏情况出现的概率class Solution {public: void quickSort(vector<int>& nums, int left, int right) { .

2021-09-08 16:25:13 341

原创 Leetcode|指针分别遍历双链表|剑指 Offer 52. 两个链表的第一个公共节点

1 拼接两个链表再乘2,使得加长两两链表路径长相同—空间复杂度O(1)O(1)O(1)class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if (!headA || !headB) return nullptr; auto nodea = headA; auto nodeb = headB; // 当两..

2021-09-08 15:22:56 190

原创 Leetcode|二叉树的属性DFS回溯|113. 路径总和 II

1 DFS回溯/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullp..

2021-08-30 15:03:31 192

原创 Leetcode|队1出栈+队2中转|225. 用两个队列实现栈

《225. 用两个队列实现栈》1 队1出栈+队2中转两个队列q1和q2,新入栈的元素先放入q2,然后将q1中元素逐个入队q2,再交换2队列即可class MyStack {public: queue<int> q1, q2; /** Initialize your data structure here. */ MyStack() { } /** Push element x onto stack. */ void pu

2021-08-30 11:39:02 262

原创 Leetcode|入栈+出栈实现队列|剑指 Offer 09. 用两个栈实现队列

1 入栈+出栈实现队列一个栈用于入队,一个栈用于出队操作class CQueue {public: stack<int> stk1, stk2; // stk1用于入队,stk2用于出队 CQueue() { while (!stk1.empty()) stk1.pop(); while (!stk2.empty()) stk2.pop(); } void appendTail(int value) {.

2021-08-30 10:28:57 266

原创 Leetcode|二分+缩小左右区间去重|81. 搜索旋转排序数组 II

1 二分+缩小左右区间去重对于nums[left] == nums[mid] == nums[right]情况,如nums=[3,1,2,3,3,3,3], target=2nums[0] == nums[3] == nums[6] == 3,无法判断该搜索左侧区域还是右侧区域,一个简单的想法是同时缩小左右侧区域[left, right] => [left + 1, right - 1]nums=[3,1,2,3,3,3,3] => nums=[1,2,3,3,3]class .

2021-08-12 13:36:17 228 2

原创 Leetcode|数组上下翻转+主对角线翻转|48. 旋转图像

1 数组上下翻转+主对角线翻转class Solution {public: void rotate(vector<vector<int>>& matrix) { int size = matrix.size(); // 1.上下翻转 for (int j = 0; j < size; j++) for (int i = 0; i < size / 2; i++) ..

2021-08-12 11:17:36 516

原创 Leetcode|取余+数组翻转|189. 旋转数组

1 数组翻转—O(1)O(1)O(1)空间复杂度,O(n)O(n)O(n)时间复杂度class Solution {public: void reverse(vector<int>& nums, int left, int right) { while (left < right) { swap(nums[left], nums[right]); left++; right--; } .

2021-08-12 10:53:03 293

原创 Leetcode|区间首尾元素大小判断成序+二分查找|33. 搜索旋转排序数组

1 旋转数组的二分查找在二分搜索基础上,判断左右区间中的收尾元素大小,来判断是否成序,不成序或target在这个区间则搜索,否则搜索另外一个区间class Solution {public: int search(vector<int>& nums, int target) { int size = nums.size(); int left = 0, right = size - 1; while (left &lt.

2021-08-11 00:03:57 218

原创 Leetcode|从后向前找首对升序对再交换右侧数并升序|31. 下一个排列

两遍扫描以求 12385764 的下一个排列为例:class Solution {public: void nextPermutation(vector<int>& nums) { int left = 0, right = 0, next = INT_MAX; int size = nums.size(); // 1.找到连续升序的左索引left for (int i = size - 1; ..

2021-08-02 17:51:48 237

Python实现最速下降法、共轭梯度法和信赖域狗腿法源代码

Python实现最速下降法、共轭梯度法和信赖域狗腿法源代码。可以直接运行,同时将迭代分析绘图。配有详细注释

2020-04-08

css_Loading加载动画

内含10个css/js_Loading加载的html模板,10种样式,用于web页面缓冲时的loading动态效果。

2019-03-13

Jclasslib_win64bit

Jclasslib_win64bit不但是一个字节码阅读器而且还包含一个类库允许开发者读取,修改,写入Java Class文件与字节码。适用于win7,win8,win10。

2018-12-03

感知机原始形式代码实现(含注释)

感知机原始形式代码实现,其中本人已详细注释,具体参考李航老师的《统计学习方法》例题,相关输入也写在in.txt中

2018-04-30

空空如也

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

TA关注的人

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