- 博客(34)
- 收藏
- 关注
原创 SSM框架整合
使用SSM框架可以快速的实现我们需求,在实际的项目中,SSM框架作为后天开发是非常常见的。本文将介绍怎样将三者结合起来,以便应用到后续的开发。1 新建一个Maven工程项目,此处不再详细叙述。2 在maven的配置文件中添加项目中需要的依赖。具体的配置如下图所示:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=
2017-09-28 14:57:41
546
原创 Leetcode之2Sum问题
问题描述: 给定一个整数数组,找出在数组中两个数字相加的和等于给定数字的下标,例如,对于输入数组为[2,7,11,15],指定的数字为9,因为2+7=9,所以最后返回的是2和7对应的下标[0,1] 该问题可以通过map数据类型来实现,map的key表示当前数组第i个位置的数字的值,value值存储当前位置i,在遍历数组的过程中,如果发现在map中包含了key值为ta
2017-07-06 21:00:46
989
原创 搭建hadoop集群
之前一直用的是hadoop伪分布式来测试程序实例,于是在自己的电脑上用虚拟机搭建了一个3台的集群,主要是熟练一下搭建过程,仅供学习。1 环境说明centos6.5 hadoop2.6.42 修改主机名和ip分别在/etc/sysconfig/network 和/etc/hosts文件下修改主机名和ip地址,之后重新启动系统。主机名和ip的对应关系如下所示:
2017-04-21 16:45:05
660
原创 链表总结
链表是一种常见的基础数据结构,是一种线性表。在计算机科学中,链表作为一种基础的数据结构来生成其他类型的数据结构,链表通常有一串节点构成,每一个节点包含一个数据实例和一个或者两个指向上一个或者下一个数据节点的指针,链表允许插入和移除链表上任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。
2017-04-03 21:22:01
539
原创 Remove Linked List Elements
问题:删除链表中指定元素的节点。思路:问题开始看比较简单,只需要在遍历链表的同时比较节点的值与给定的值是否相同,然后做出判断是否删除即 可。但是我们知道在删除链表元素的时候要找出其前一个节点,如果链表的第一个节点就是需要被删除的节点 呢?所以必须要跳过这样的节点。public class Solution { pub
2017-03-26 17:21:26
511
原创 Reverse Linked List
问题:单链表的反转问题。思路:可以利用一个辅助的栈来解决,将链表中的所有元素入栈,然后再进行出栈操作构造一个新的链表来实现。也可 以通过循环的方式来实现,遍历链表,记住当前遍历节点的前一个节点后一个节点,将指针反转即可。public class Solution {public ListNode reverseList(ListNode head) { if (h
2017-03-26 17:13:21
450
原创 MapReduce实现KNN
不正之处,欢迎指正。 KNN算法称为K近邻分类算法,是最简单的分类器,KNN算法从训练集中找到和测试数据距离最近的K个记录,然后根据这K个记录的标记来决定测试实例的最终标记。MapReduce作为一种大数据环境下的计算模型,在分布式计算中具有其独特的优势,本文主要在hadoop框架下面实现KNN算法。 实验环境:centos6.5+hadoop2.2.0
2017-03-20 16:08:15
4847
2
原创 3Sum Closest
问题:给定一个包含n个整型元素的数组和一个给定的数字,在数组中找出三个数字的和和给定的数字最接近,返回三个数字的和。例如给出数组S=[-1,2,1,-4] target=1 和给定的数字最为接近的和是2。 求解:1.暴力求解法,三层循环数字,找到三个数字的加和与target进行比较,找到距离最为接近的。 2.先将数组排序,循环遍历排序之后的数组,指针i指向当前正
2017-03-06 19:53:14
555
原创 Python IO编程
IO编程是每一种语言中都必不可少的,Python也不例外,输入输出是应用程序和计算机之间进行数据交换的方式,程序在运行时候数据在内存中停留,由CPU来进行计算,设计数据交换的地方,通常是磁盘,网络等。IO大的方面可以分为同步IO和异步IO,同步IO情况下,CPU需要等待IO完成之后才可以进行其他的操作,异步IO不需要CPU进行等待。所以异步IO的效率比同步要高一点,当然编程实现也比同步复杂一些,在
2017-02-16 17:10:10
737
原创 分类和Logistic回归
在上一章节中,介绍了简单的线性回归,给出一系列的离散点,利用回归模型找到一条最佳的拟合直线,其中在求解最佳拟合直线的过程中利用到了批梯度下降算法和随机梯度下降算法以及最小二乘法。可以看到,回归是一个连续的模型,那么怎样将这样一个连续的模型用在分类问题上呢,这就是这一节中将要介绍的对数回归模型。 对数回归本质上就是线性回归,只不过在线性回归的基础上加上了一个函数而已,这一点和单层感知器和相似,在单层感知器的输入上加上一个激励函数,就会得到不同的输出。对数回归也是一样,只需要在我们上一节中的回归模型的
2017-01-05 20:59:28
966
原创 线性回归
线性回归问题是机器学习中常见的基本问题之一,问题模型如下:给定一系列的数据样例和标记,用一个线性的方程来表示这些数据。简单点也就是给出点,求拟合曲线。
2016-12-30 16:34:41
834
原创 集体智慧编程第三章之发现群组
第三章主要讲述了利用分级聚类,K均值聚类来发现群组的过程。聚类是寻找紧密相关的事人或者观点,并将其可视化的方法,通过数据聚类可以将相似度很高的项目聚集在一起,属于一种无监督学习,聚类在机器学习中的应用十分广泛。比如可以通过聚类来发现数据的分布特征,通过聚类可以寻找相似用户等等。本章主要通过一个对博客进行聚类的来说明聚类的过程,并在聚类的基础上将数据进行了可视化。
2016-12-14 22:05:26
1284
原创 集体智慧编程第二章之提供推荐
本章主要介绍了利用协作型算法对项目进行推荐,这里的项目可以是商品,电影,音乐。一个协作型算法的关键是对一大群人进行搜索,从中找出与我们品味最相似的一群人,算法会对这些人的所偏好的内容进行考查,并将它们组合起来构造出一个经过排名的推荐列表。本文主要通过一个电影推荐的例子完成这个过程。
2016-12-14 10:50:11
1533
原创 范数汇总
范数,是具有长度概念的函数,在线性代数泛函分析中及相关的数学领域中是一个函数,其为向量空间内的所有向量赋予非零的正长度或大小。在平时的学习中,总是会出现范数的身影,本篇文章主要从向量的范数和矩阵的范数来说明。
2016-12-02 20:49:45
2557
原创 迁移学习概述
迁移学习的目标是从一个或者多个源领域任务中提取有用知识并将其用在新的目标任务上,本质上就是知识的迁移再利用。迁移学习的问题关键就是要解决三个问题,什么时候迁移,什么可以迁移,如何迁移。迁移学习的本质就是知识的再利用,数学上,迁移学习包含“域”和“任务”两个因素。
2016-12-02 16:15:40
5607
原创 基于用户的协同过滤推荐—实现电影推荐
协同过滤(Collaborative Filtering)字面上的解释就是在别人的帮助下来过滤筛选,协同过滤一般是在海量的用户中发现一小部分和你品味比较相近的,在协同过滤中,这些用户称为邻居,然后根据他们喜欢的东西组织成一个排序的目录来推荐给你。问题的重点就是怎样去寻找和你比较相似的用户,怎么将那些邻居的喜好组织成一个排序的目录给你。
2016-11-26 17:38:53
9390
4
原创 Hadoop之倒排索引
倒排索引是文档检索中最为常用的数据结构,根据单词来查看在文档中出现的频率。通常情况下,倒排索引由一个单词以及与其相关的文档列表组成。在Hadoop学习过程中,倒排索引是经常会出现的一个MapReduce实例,本文将会给出一个倒排索引mapreduce实现的实例。
2016-11-16 22:35:04
1336
原创 MapReduce之shuffle
MapReduce作为Hadoop的核心之一,是一种经典的大数据计算框架,在MapReduce编程中,涉及到Key和Value的选择。在MapReduce中确保每个Reduce的输入都是按照键排序的。系统按照键排序的过程称之为shuffle,shuffle属于不断被优化和该进代码库的一部分
2016-11-15 16:12:47
855
原创 Hadoop实现定制的Writeable集合
Hadoop提供的Writeable实现可以满足大部分的需求,但是在有些情况下,我们需要根据自己的需求来构造一个全新的实现,根据自定义的Writeable类型,我们可以完全控制二进制表示和排序操作,通过实现WriteableComparable接口来完成
2016-11-14 11:29:34
1484
原创 Java API操作HDFS
可以利用命令的方式操作HDFS,但是更多的是在程序总通过提供的API来操作文件系统。本文只讨论通过Java来操作我们的HDFS。
2016-11-09 21:10:22
880
原创 PCA
PCA:主成分分析,一种常用的数据分析方法,不管是在机器学习还是数据挖掘中都会用到。PCA主要通过求数据集的协方差矩阵最大的特征值对应的特征向量,由此找到数据方差最大的几个方向,对数据达到降维的效果,将一个n维的向量降低到d维,其中d<n。本文主要从方差最大化理论解释PCA的实现过程。
2016-11-08 09:45:59
14756
原创 SVD矩阵奇异值分解
矩阵的奇异值分解师线性代数中一种重要的矩阵分解,在信号处理,统计学等领域中有着重要的应用。在大学里面的线性代数的课程中一般都是会有SVD分解相关的知识的。但是往往只是涉及到理论上的知识体系,并没有多少实际应用的背景,所以结果就是学了没多久就会忘。奇异值分解可以将一个比较复杂的矩阵用几个小的简单的矩阵来表示,这些小的矩阵可以很好的表示原始矩阵的重要特性。在机器学习方面,很多的研究都是和奇异值分解有关的,典型的用于特征降维处理的PCA。在本文中我们会先介绍特征值得概念,由特征值引出奇异值分解,最后会给出实际中求
2016-11-05 20:23:38
1668
原创 迁移学习算法之TrAdaBoost
TradaBoost算法由来已久,现在也有各种针对算法的该进,本文只讨论最初的算法。1.迁移学习 传统的机器学习的模型都是建立在训练数据和测试数据服从相同的数据分布的基础上。典型的比如有监督学习,我们可以在训练数据上面训练得到一个分类器,用于测试数据。但是在许多的情况下,这种同分布的假设并不满足,有时候我们的训练数据会过期,而重新去标注新的数据又是十分昂贵的。这个时候如果丢弃训练数据又是
2016-11-04 22:27:04
27483
6
原创 synchronized 和 Lock
有了多线程之后,可以大大提高程序的工作效率,但是随之而来的也会带来一定的问题,比如程序中的多个线程可能在同一时刻要访问同一个文件,由于每一个线程的执行是不可控制的,所以很可能导致最终的结果与我们预期的不太一样。 例如现在有两个线程A,B,分别向一个Set集合中写数据,我们知道在写入的过程中是不允许有重复元素存在的,如果在某一个时刻,线程A读取了元素X,线程B也读取到了元素X,那么线程A
2016-10-25 11:30:56
624
原创 Java集合框架概述
介绍了Java集合中的类,重点讲解了List中的ArrayList,LinkedList,Set中的HashSet和TreeSet,Map中的HashMap的实现原理。
2016-10-20 10:15:18
738
原创 机器学习之回归
1.简介 本文主要参考斯坦福大学机器学习视频中第一节关于回归的讲解,在复习知识点的同时最后给出了一个具体的应用的实例,具体实例可以参考《机器学习实战》一书中的第五章。2.线性回归 在线性回归中,假设特征与结果之间满足线性关系,其中每个特征对结果的影响关系的强弱可以通过特征前面的参数进行控制假设我们用x1,x2......xn来表示特征里面的
2015-12-14 18:35:35
727
原创 k-近邻算法
1.文章说明 此文章参考机器学习实战一书,具体的理论知识可以参考该书。本文的初衷只是为了做一个复习,将学过的知识加以整理,其中不免有一定的错误。2.K-近邻算法的原理介绍 k-近邻算法通过测量不同的特征值之间的距离进行分类。它的工作原理如下:存在一个样本的数据集合,也成为训练样本集合。并且样本集中的每个数据都存在标签,即我们知道样本集
2015-12-10 21:47:20
768
原创 在servlet中通过servletcontext对象读取资源文件的模板代码
在servlet中有时需要读取资源文件中的一些相关的信息,例如在资源文件中可能会实现配置数据库有关的信息,这时就可以通过servletcontext对象读取资源文件的相关的信息。具体的代码如下所示:private void test() throws IOException { InputStream in = this.getServletContext().getResource
2015-05-06 22:27:03
606
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人