暂无个人介绍
能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
暂时未有相关云产品技术能力~
阿里云技能认证
详细说明我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
所以代码附上GitHub:https://github.com/GreenArrow2017/DataStructure_Java/tree/master/out/production/DataStructure_Java/ApplicationOfAlgorithm 排序可视化 SelectionSort 选择排序很简单,所有的排序算法在前面的博客都有讲解: https://www.jianshu.com/p/7fbf8671c742 选择排序很简单,遍历所有元素,查看一下他们的之后最小的元素和当前元素交换即可。
Java Swing的基础 首先需要注意的就是JFrame这个类,如果在main类整直接new一个出来是没有任何的变化,需要设置一个setvisible为true来显示出来。
线段树Segment Tree 对于有一类问题,时常关注的是一个区间或者是一个线段,那么就可以使用线段树来解决。比较经典的问题,就是区间染色问题:有一面墙,长度为n,每次选择一段墙来染色,一开始4-6绘制成黄色,然后1-10绘制蓝色,2-7绘制红色,若干次绘色之后能看见多少种颜色,或者是在区间「i,j」区间里面可以看到多少种颜色。
前情提要——二叉树 二叉树之前已经提到过,二叉树这种数据结构只能有两个子数,一左一右。 叶子节点就是左右孩子都是空的,但是并不是每一颗树都像上图所示的那样这么规整,有些树树可以只有左孩子没有右孩子的。
数组 数组在编码中很常见,就是把数据码成一排存放。 这就表示一个数组,这个数组有八个元素存放。对于元素的获取,主要就是通过下标获取,所以索引对于数组是很重要的,这个索引可以是有意义的,也可以是没有意义的。
窗口界面以及菜单 Scene 场景编辑窗口,用于对场景的设计以及物体的处理。 可以自由的漫游整个场景,拖动物体等等。 第一个手部图标,可以拖动物体,对准物体点击就可以拖动。
图论 无权图 交通运输,社交网络,互联网,工作的安排,闹区活动等等都可以用到图论处理。图可以分成两大类,一类是无向图,就是没有方向的,就好像两个人都互相认识一样,有向图就是单方面的联系,一个人认识另一个人,但是另一个人确不认识。
堆 堆这种数据结构的应用很广泛,比较常用的就是优先队列。普通的队列就是先进先出,后进后出。优先队列就不太一样,出队顺序和入队顺序没有关系,只和这个队列的优先级相关,比如去医院看病,你来的早不一定是先看你,因为病情严重的病人可能需要优先接受治疗,这就和时间顺序没有必然联系。
排序算法 Tool implement //generate a array of n elements, range [rangL, rangeR] int *generateRandomArray(int n, int rangL, ...
推荐系统 推荐系统的核心问题就在于为用户推荐与其兴趣相似度比较高的商品。比如在微博上,用户至上想打发时间,并不是想准确的查看某条信息,在首页中查看每一条微博,为了帮助他筛选出一批他们可能感兴趣的信息,此时就需要分析出该用户的兴趣,从海量信息中选择出与用户兴趣相似的信息,并将这些信息推荐给用户。
Label propagation是基于标传播的一种社区划分算法。Label Propagation Algorithm简称LPA算法,也可以是说是一种划分小团体的算法。
机器学习就是需要找到模型的鞍点,也就是最优点。因为模型很多时候并不是完全的凸函数,所以如果没有好的优化方法可能会跑不到极值点,或者是局部极值,甚至是偏离。
Factorization Machine---因子分解机 ①target function的推导 logistics regression algorithm model中使用的是特征的线性组合,最终得到的分割平面属于线性模型,但是线性模型就只能处理线性问题,所以对于非线性的问题就有点难处理了,对于这些复杂问题一般是两种解决方法①对数据本身进行处理,比如进行特征转换,和函数高维扩展等等。
Softmax Classifier softmax分类器和logistics regression有点像,softmax其实就是从logistics发张过来的。
①linear regression target function的推导 线性回归是一种做拟合的算法: 通过工资和年龄预测额度,这样就可以做拟合来预测了。
SVM 回顾一下之前的SVM,找到一个间隔最大的函数,使得正负样本离该函数是最远的,是否最远不是看哪个点离函数最远,而是找到一个离函数最近的点看他是不是和该分割函数离的最近的。
HMM隐马尔科夫模型 ①通俗的理解 首先举一个例子,扔骰子,有三种骰子,第一个是比较常见的6个面,每一个面的概率都是1/6。第二个只有4个面,,每一个面的概率是1/4。
Expectation Maximization Algorithm EM算法和之前学的都不太一样,EM算法更多的是一种思想,所以后面用几个例子讲解,同时也会重点讲解GMM高斯混合模型。
Feature Exploitation Techniques 这几篇博客介绍的第一个feature transform方法就是kernel。kernel先出现是在SVM里面,原因就是为了减少 內积计算的复杂度,把特征转换和內积计算结合到一起。
Matrix Factorization ①linearNetwork Hypothesis 机器学习的作用就是要从一堆数据中学习到学习到某种能力,然后用这种skill来预测未来的结果。
RBF Network 前面的一篇SVM中,最后的分割函数: 使用高斯核函数方式把数据维度扩展到无限维度进而得到一条粗壮的分界线。仔细看一下这个分割函数,其实就是一些Gaussian函数的线性组合,y就是增长的方向。
Deep Learning 上一篇主要是讲了全连接神经网络,这里主要讲的就是深度学习网络的一些设计以及一些权值的设置。神经网络可以根据模型的层数,模型的复杂度和神经元的多少大致可以分成两类:Shallow Neural Network和Deep Neural Network。
Random Forest——随机森林 上一篇是讲到了决策树,这篇就来讲一下树的集合,随机森林。 ①Aggregation Model 随机森林还是没有脱离聚合模型这块,之前学过两个aggregation model,bagging和decision tree,一个是边learning边uniform。
①Aggregation Model 回顾上一篇文章讲到的聚合模型,三个臭皮匠顶一个诸葛亮。于是出现了blending,bagging,boost,stacking。
⑴Motivation of Aggregation 比如现在有一支股票,你不知道是跌还是涨。你有T个friends,每一个friend对应的建议分别是g1,g2,g3...gn,那么你应该怎么选择建议? ⑵Blending 1.Select the most trust-worthy friend 这其实就是对应validation,我们在所有的friend里面做kfold或者vfoldvalidation,然后比较Ein,小的将拿出来作为你的most trust-worthy friend。
聚类算法: 聚类算法属于无监督学习,没有给出分类,通过相似度得到种类。 主要会讲四种:Kmeans均值,层次聚类,DBSCAN,谱聚类。 再讲算法前先讲一下几种衡量相似度的方法: 1.欧氏距离: p=2时就说平时计算的几何距离,当p趋向于正无穷的时候,其实求的就不是x,y的距离了,而是求x y中最长的一个了。
机器学习可行性 在银行评估贷款申请人的授信请求前,会进行风险评估。符合申请则通过,反之驳回。长时间的数据和申请使得银行从中找到了一些规律并开始learning,所以风险评估就是一个learning的过程,流程图如下: 机器学习流程图 首先target function我们是未知的,需要求解的。
支持向量机 linear regression , perceptron learning algorithm , logistics regression都是分类器,我们可以使用这些分类器做线性和非线性的分类,比如下面的一个问题: GV0SHYC3S{P{Q4QVB66UN6T.png 这里的每一条线都是可以把这个平面分开的,支持向量机要做的就是要在这些可以选择的直线中选择一条最好的直线来作为分类的直线。