自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xutiantian1412的博客

不要总想搞个大项目

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

原创 Java中文NLP工具汇总

NLP任务都是要用python完成么?当然不是了。。。毕竟企业级服务还是Java性能好。下面介绍几个可供选择的中文NLP任务工具包。首先声明,本文介绍的所有工具也可参考下文:Java开源项目cws_evaluation:中文分词器分词效果评估对比文中比较了10个中文分词工具,比较了他们主要性能。其次,本文提供各个工具github地址及主要特点,具体使用方法及功能、特点,去githu...

2018-12-11 20:00:17 12647 2

原创 python数据结构与算法学习路线及系列文章汇总(持续更新。。)

虽然是用python搞机器学习的大项目,还是要从零开始学习数据结构那一套理论。不知不觉数据结构及算法系列的学习及LeetCode刷题已经一大堆,现对此汇总。如下是一套比较合理的完整的学习路径:1)数据结构与算法的理论,包括复杂度的思想,从线性表开始(链表,栈和队列),然后是数组和字符串的初级理论和题目(双指针);查找算法中深刻理解二分查找及哈希查找。2)接下来打算学习树及二叉树相关姿势...

2018-10-02 22:29:10 8930 12

原创 数据挖掘实战之天池精准医疗大赛(2)——算法思路

Part 1-2 算法思路:下面我们根据前文对数据集的认识,分析问题和解题思路。其实讲述算法思路是一件十分复杂和困难的事儿,按照自上向下的顺序结合一位大佬的文章,谈一谈:一,说到思路,其实就是数据、特征、模型三个部分,数据预处理服务于特征工程,特征服务于模型,又决定了模型的上限。这三部分密不可分,而且在后续的流程中还会返回来完善、改进前面的工作;二,开始我们仍未对特征作用于模型的效果有所尝试,故首...

2018-02-09 16:13:36 4356

原创 数据挖掘实战之天池精准医疗大赛(1)——赛题与数据

首先介绍题目与数据:特别提供一下数据,供后来看到的盆友下载研究(现在官网上剩下的数据是复赛的了),测试数据分AB榜,不了解的去看天池平台的介绍:链接:https://pan.baidu.com/s/1SGZi_o1UVobHfy275onoOw 密码:rf6s竞赛题目中国是世界上糖尿病患者最多的国家,病人达到1.1亿,每年有130万人死于糖尿病及其相关疾病。每年用于糖尿病的医疗费用占中国公共医疗卫...

2018-02-05 15:35:44 10844 11

原创 9.5.2 关键路径

图论的最后一部分是关键路径,我们简单了解一下。关键路径是在拓扑排序基础上进行的。拓扑排序解决工程项目能否顺利进行,解决活动间的依赖问题;而关键路径解决工程完成的时间。这里提出一个AOE网络(Activity on Edge),即顶点代表事件,边代表活动,权重代表活动持续时间。二者的关系就是:AOV网只能表示活动之间的制约关系,边表示活动之间的依赖,没有权重,而AOE网可以用权值表示活动的持续时间。所以AOE网是建立在活动之间制约关系没有矛盾的基础上,再来分析整个工程需要多少时间。在AOE网中,从

2021-02-17 22:47:04 534

原创 9.5.1 拓扑排序及LeetCode题目 —— Course Schedule II & Minimum Height Trees

首先解释AOV网的概念:用一个有向无环图DAG表示一项工程或项目,我们用顶点表示活动,用弧\边表示活动之间的优先关系。这样的图称为顶点表示活动的网即AOV网(Active on Vertex Network)。再看一下拓扑排序topologicalSort对于任何有向图而言,其拓扑排序为其所有结点的一个线性排序(对于同一个有向图而言可能存在多个这样的结点排序)。该排序满足这样的条件——对于图中的任意两个结点u和v,若存在一条有向边从u指向v,则在拓扑排序中u一定出现在v前面。拓扑排序主要用来

2021-02-17 19:42:20 251 3

原创 9.4 最短路径算法

最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:确定起点的最短路径问题 - 即已知起始结点,求起始点到所有点的最短路径的问题。 确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,有向图中该问题等同于把所有路径方向反转的确定起点的问题。 确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。 全局最短路径问题 - 求图中所有

2021-02-16 20:30:53 714

原创 9.3 最小生成树算法

接下来我们看最小生成树问题,和下一节的最短路径问题容易混淆。最小生成树的概念(1)一个带权值的图:网。并需要最小成本,就是用n-1条边把n个顶点连接起来,且连接起来的权值最小。(2)我们把构造联通网的最小代价生成树称为最小生成树产生最小生成树必须解决下边两个问题:(1) 尽可能选取权值小的边,但不能构成回路;(2) 选取n-1条恰当的边以连通n个顶点。最小生成树的算法主要有Kruskal算法和Prim算法,他们都是贪心算法的应用。最小生成树的应用用带权值的图表示一群城市及城市间的

2021-02-15 23:37:53 422

原创 9.2.3 图的遍历及路径 —— Reconstruct Itinerary & All Paths From Source to Target

前面的遍历都没有关注路径本身,本节从两道题目着手,穴习一个图的遍历及路径。首先了解几个概念。1.欧拉通路:通过图(有向图或者无向图)中的所有边,且每条边只通过一次且行遍所有顶点的通路。2.欧拉回路:当欧拉通路为回路时,称为欧拉回路。3.欧拉图:具有欧拉回路的无向图。半欧拉图:具有欧拉通路但不具有欧拉回路的无向图。简单来说,类似于[一笔画]问题。七桥问题是最早涉及这一问题的数学趣闻,有兴趣的可以了解一下https://www.cnblogs.com/graytido/p/10421927.h.

2021-02-10 10:35:15 430

原创 9.2.2 图的遍历LeetCode题目 —— Find the Town Judge & Clone Graph & Keys and Rooms

133.Clone GraphGiven a reference of a node in aconnectedundirected graph.Return adeep copy(clone) of the graph.Each node in the graph contains a val (int) and a list (List[Node]) of its neighbors.题解:注意题目的入参和出参,都是Node结构,而题目说明及例子多少绕了个弯。...

2021-02-09 17:39:44 203

原创 9.2.1 图的存储与遍历

2021 继往开来,继续学习数据结构。9.1一节简述图的基本概念及存储结构,这一节我们深入看一下图的存储,学习图的遍历方法,实现图的存储和遍历。

2021-01-17 22:22:53 458

原创 机器学习建模全流程及资料总结(4)

五. 结果分析结果分析我们包含两部分,一是训练过程的分析,二是模型效果的分析。

2020-06-27 13:51:45 502

原创 机器学习建模全流程及资料总结(3)

书接上文。四.模型实验这里我们补充一些数据分析的东西。1. 数据分析及可视化相关熟悉pandas的操作 matplotlib/ seaborn 可视化分析(数据科学学习手札62)详解seaborn中的kdeplot、rugplot、distplot与jointplotseaborn库调色板color设置【知识整理】matplotlib在同一坐标系上绘制多条曲线 及在多个子图上绘图将数据/特征中的规律,可视化出来,也是很重要的。2....

2020-06-22 21:08:18 602

原创 机器学习建模全流程及资料总结(2)

书接上文。4. 特征筛选前述特征工程的工作从原始数据中提取,构造了众多特征,一般来说是可以直接用于模型训练的。但是对于机器学习模型来说,并不是特征越多越好。特征中冗余的信息,与目标值无关的变量,多个特征之间的线性关系等,都会对模型训练产生负面影响。因此进行特征对筛选是很必要对步骤。我们可以随意的构造众多特征,在筛选的时候根据数据量,问题场景等,或者经验,筛选出一部分特征,再传入模型...

2020-05-18 00:00:49 614

原创 机器学习建模全流程及资料总结——以文本分类风控建模实验为例(1)

场景为根据用户手机短信的风控建模,以此为例总结一套数据处理,特征工程,实验就结果分析的全流程珍贵的代码。一 数据预处理二 特征工程三 数据存储四 模型实验五 结果分析...

2020-05-03 23:15:05 932 2

原创 10.6 贪心算法详解及LeetCode题目

可参考几篇博客详解贪心算法(Python实现贪心算法典型例题)五大常用算法之一:贪心算法算法概述贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的...

2020-04-06 22:03:32 668

原创 10.5.2 (python) 动态规划字符串类LeetCode题目 —— Interleaving String & Distinct Subsequences

下面我们看两道字符串子序列的问题 subsequence,首先明白子序列是不必连续的。97.Interleaving StringGivens1,s2,s3, find whethers3is formed by the interleaving ofs1ands2.Example 1:Input: s1 = "aabcc", s2 = "dbbca", s3 ...

2020-03-29 18:19:54 221

原创 10.5.1 (python) 动态规划字符串类LeetCode题目 —— Edit Distance & Regular Expression Matching

下面学习几道字符串的题目,难度一般较大,但是也有共性,有套路,必须掌握几道经典的题目。72.Edit DistanceGiven two wordsword1andword2, find the minimum number of operations required to convertword1toword2.You have the following 3 ...

2020-03-29 14:17:34 262

原创 LeetCode刷题指南——题目精选3

7. 二叉树遍历树的概念,树的存储结构,孩子兄弟存储方式二叉树、完全二叉树的性质深度优先、广度优先遍历即先序中序后序层次遍历的递归和非递归写法(相当于6道题)101. Symmetric Tree111. Minimum Depth of Binary Tree103. Binary Tree Zigzag Level Order Traversal105. Const...

2020-03-22 00:15:38 344

原创 LeetCode刷题指南——题目精选2

这是LeetCode经典题目总结文章~第二篇4. 二分查找熟练掌握二分查找的通用格式,包括递归及非递归的写法;33. Search in Rotated Sorted Array34. Find First and Last Position of Element in Sorted Array5. 排序排序算法的分类,每种方法的时空复杂度,最好、最坏复杂度,稳定性及...

2020-03-21 23:33:25 513

原创 10.4.3 (python) 动态规划专题之股票买卖 —— Best Time to Buy and Sell Stock

这一系列涉及到LeetCode中几道关于股票stock买卖时机的题目,给出一数组,代表每天股票的价格,我们要按要求,计算你所能获取的最大利润。需要注意的是,你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。Say you have an array for which theithelement is the price of a given stock on dayi.De...

2020-03-15 11:27:32 563

原创 10.4.2 (python) 动态规划专题之换零钱 —— Coin Change & Perfect Squares

换零钱是一个典型的动态规划场景。322.Coin ChangeYou are given coins of different denominations and a total amount of moneyamount. Write a function to compute the fewest number of coins that you need to make up t...

2020-03-08 20:24:20 248

原创 10.4.1 (python) 动态规划专题之最长递增子序列 —— Longest Increasing Subsequence & Russian Doll Envelopes

Longest Increasing Subsequence 简称 LIS,是一个经典问题。我们看一下经典解题方法及一道应用题目。300.Longest Increasing SubsequenceGiven an unsorted array of integers, find the length of longest increasing subsequence.Exam...

2020-03-08 19:50:40 791

原创 10.3.3 (python) 动态规划数组类LeetCode题目 —— Dungeon Game & Frog Jump

来看两道 hard 级别的题目,其子问题性质很明显,就是动态规划,难点就是我们可能找不好子问题的关系式。174.Dungeon GameThe demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. The dungeon consists of M ...

2020-03-08 00:06:35 230

原创 10.3.2 (python) 动态规划数组类LeetCode题目 —— Decode Ways & Range Sum Query 2D

这几道题稍微加大难度,DP的框架是不变的,关键是分析问题的结构,分析状态转移关系。91.Decode WaysA message containing letters fromA-Zis being encoded to numbers using the following mapping:'A' -> 1'B' -> 2...'Z' -> 26...

2020-03-07 20:11:45 262

原创 10.3.1 (python) 动态规划数组类LeetCode题目 —— Minimum Path Sum & Triangle & Maximum Product Subarray

这一节的几篇,都是解析动态规划数组类题目,相对于后面的字符串类问题来说,还是比较容易的。首先来看比较几个简单的DP题目,巩固一下前面所学套路。64.Minimum Path SumGiven amxngrid filled with non-negative numbers, find a path from top left to bottom right whichmi...

2020-02-27 21:49:47 261

原创 10.2 动态规划算法套路及空间优化 —— Climbing Stairs & Unique Paths

这一篇文章从最简单的动态规划题目开始,结合上一节动态规划三要素,阐述DP问题的基本套路解法。

2020-02-26 22:30:44 470

原创 10. 1 动态规划及贪心算法概述

这一章介绍两个重要的算法思想:动态规划和贪心。谈到算法思想,前面已经涉及到的包括,递归,分治,当然暴力求解也是一种算法思想(关于算法思想的知识框架,可以参考算法书籍),但是许多问题最优解暴力实在解决不了或者效率低下,不够优美,这样就引出了——动态规划。一. 概述建议在对算法有所了解的情况下再学习。什么是动态规划(Dynamic Programming)?动态规划的意义是什么?首...

2020-02-17 00:39:01 769

原创 7.12.1 线段树原理及应用(上)

继续在树这一类问题上拓展,线段树也是高级的数据结构,初学者要跳过,深入学习阶段可以适当了解一下,拓宽思维能力。如果要参加竞赛或者其他对数据结构要求比较高的情形,可以仔细研究一番,本文借其他博客和几道力扣题目介绍一下线段树。第一篇文章我们先从以下两个问题展开:1. 线段树是什么?是什么样的结构?这样的结构可以解决什么样的问题?2. 线段树的基本实现及区间查询问题——LeetCode307...

2020-02-16 18:43:16 321

原创 LeetCode刷题指南——题目精选1

这是LeetCode经典题目总结文章~基础:将数据结构及算法学习的差不多,LeetCode题目按类别刷题及总结,参考鄙人数据结构及算法系列文章~按类别将每类题目做好,大概刷250道左右的程度即可。再按照如下精选题目进行知识点巩固,文章总结了各种类型的经典题目,用于第二遍刷题。第二遍刷题同时还可以做一些第一遍时没做的题目,争取刷到400道,但是题目在于精细而不在于数量,一般面试就考察基础...

2020-02-01 23:11:41 885

转载 7.11.1 Trie 树(字典树)简介与实现

新年第一篇,补充一下trie树的相关知识,还比较好理解,关键是在实际问题上应用起来~一、基本概念Trie树又称字典树、单词查找树、前缀树等,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。  优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。  ...

2020-01-08 11:40:40 270

转载 java各种类型对象占用内存情况分析(经典篇,有图有真相)

写在转载文章前面:在项目中遇到了诡异的内存占用过高的问题,其实搬到服务器上内存也够,但是某位大神还是锲而不舍的追求问题本质,于是我们学习了这篇文章。项目中读了一个1.7G的词向量文件(对,用Java搞NLP),文件每行为一个词语及300维度的词向量,自然是要存为一个hashmap,便于查找;诡异的是这个map整体上似乎占用了过高的内存(>6G),导致在16G的台式机上跑不动。...

2019-11-01 19:56:45 1129

原创 8.2.3 python排序LeetCode题目(3) —— K Pairs with Smallest Sums & Kth Smallest Element in a Sorted Matrix

这一节再看一些排序相关的题目。373.Find K Pairs with Smallest SumsYou are given two integer arraysnums1andnums2sorted in ascending order and an integerk.Define a pair(u,v)which consists of one elemen...

2019-09-05 20:47:26 200

原创 8.2.2 (python)排序算法及LeetCode题目(2) —— Insert Interval & Contains Duplicate III & Wiggle Sort II

这一节是数组排序的相关题目,并没有直接应用算法解决问题那么好的事情。这一部分都是难度较高的题目,重点是解题思路,和排序相关,反而没用到什么排序算法。57.Insert IntervalGiven a set ofnon-overlappingintervals, insert a new interval into the intervals (merge if necessary)...

2019-09-05 09:37:43 189

原创 8.2.1 (python)排序算法之链表排序LeetCode题目(1) —— Sort List & Merge k Sorted Lists

首先,在排序的题目中,我们先总结、学习一下,链表排序的问题,顺便也回忆一下链表相关操作。对应于下面两道题147.Insertion Sort ListSort a linked list using insertion sort.148.Sort ListSort a linked list inO(nlogn) time using constant space com...

2019-09-03 23:27:05 291

原创 9.1 数据结构之图的基本概念及存储结构

前面8章都是比较基础的数据结构与算法,当然各章也有一些较深的知识。之后的章节,都是进阶的数据结构与算法的知识了。这一章我们介绍更复杂的数据结构——图。图状结构是一种比树形结构更复杂的非线性结构。在树状结构中,结点间具有分支层次关系,每一层上的结点只能和上一层中的至多一个结点相关,但可能和下一层的多个结点相关。而在图状结构中,任意两个结点之间都可能相关,即结点之间的邻接关系可以是任意的。因此...

2019-09-01 10:46:53 742

原创 8.1.2 排序算法概述及python基本实现(下)

归并排序(Merge Sort)和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序...

2019-09-01 10:46:15 274

原创 8.1.1 排序算法概述及python基本实现(上)

从查找算法的性能可以看出,有序数据可以提高查找速度。对数据进行排序,是数据结构与算法知识基础篇中最后介绍也是最重要的一部分。面试时考察编程基础,一看字符串、数组处理的一些题目,二看链表、树的基础应用,三看查找、排序各种方法张口就来。排序算法是和语言无关的,本节重点还是python的实现;另外,排序算法分为几大类,若有不理解之处还要自行研究,本文不对原理详细展开(原理上比较复杂的算法不多,大...

2019-09-01 10:44:40 584

原创 7.10.2 (python)堆的应用及Leetcode题目解析

我们简单看几道二叉堆/优先队列的应用。215.Kth Largest Element in an ArrayFind thekth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element....

2019-08-21 23:58:55 287

原创 7.10.1 优先队列及堆

树这一章真是又臭又长,这一节从优先队列着手,学习堆的概念。优先队列队列是一种FIFO(First-In-First-Out)先进先出的数据结构,优先队列(Priority Queue)是特殊的队列,从“优先”一词,可看出有“插队现象”,取出元素的顺序是依照元素的 优先权(关键字)。优先队列有两种特殊的操作:删除最大元素和插入元素。我们来看一下优先队列的实现方案,元素插入时如果不处理...

2019-08-19 21:18:14 265

空空如也

空空如也

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

TA关注的人

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