自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 算法学习笔记之寻找第1500个丑数

最近在阅读《算法新解》(刘新宇 著),书写得很不错,推荐程序们阅读。前言中有个例子,是寻找第1500个丑数,所谓丑数是指仅含2、3、5这三个素因子的自然数。作者在书中给出了伪代码。作为练习,记录下自己的代码。一、暴力查找法算法思路 :迭代每个自然数,逐一判断是否是丑数,并观察累计计数是否达到1500,如果是,则成功找到了第1500个丑数#include #include #incl

2017-01-30 21:03:58 3420 3

原创 使用高德API接口查询两个地址之间的距离

要点:1. 通过高德开放者平台http://lbs.amap.com/,注册一个开发者账号,获得一个KEY(查询接口需要使用该KEY)2. 阅读高德web 服务API接口的文档 http://lbs.amap.com/api/webservice/summary/ 3. 可将编程过程分解过两步获取一个地址的经度、纬度信息通过两个地址的经纬度,查询距离上代码:im

2017-01-04 22:58:19 27104 4

原创 用python从PDF格式论文中读取其中的参考文献

目标:     给定一篇PDF格式的文章,用python解析其内容,并使用正则表达式提取出其中的参考文献内容     本文中假设参考文献内容以[1] [2] 这样的索引编写。必要条件:     安装解析PDF文件的python软件 pdfminer 包 http://www.unixuser.org/~euske/python/pdfminer/index.html

2016-10-23 17:17:38 7484 5

原创 记两则SQL编程中的坑

近期写SQL提取数据时,踩了两个坑。稍做回顾总结,以期对其他人能有所帮助。concat的使用concat用于合并多个字符串,很早以前,一直以为如果输入的参数中有null值,concat会自动忽视之。直到有一次的业务需求开发中,需要合并商品的多个类目信息,最后发现总是有很多类目为空的商品,排查明细后,发现了真相:如果输入concat的众多参数中,只要有一个值为null,最终结果就为null

2016-10-15 14:22:28 407

原创 递归练习-House Robber问题求解

LeetCode上第198题,题目如下You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of th

2016-09-10 22:01:00 568

原创 网络爬虫-用python获取豆瓣新书推荐信息

前言:     数据获取是数据分析师的职场必备技能,其中通过网络爬虫,自动、有组织地爬取一些网站数据,既实用,又有趣。本文通过对豆瓣新书速递页面及其子页面的迭代爬取,介绍python3环境下,网络爬虫的入门级用法。    其中的要点在于通过网页元素信息,定位到目标信息的标签格式,然后通过python的一些网络分析包,如 beautifulsoup 来有效提取相关信息。一、要爬取

2016-06-11 22:53:26 1159

原创 TCP/IP编程入门-案例学习

前言     从作为一名数据分析从业者,一直不太了解后台开发岗位所使用的各种网络编程方法,于是也就老想闹明白,这个东西究竟是咋玩的? 本文试图通过一个小案例,来管窥下这个领域的编程套路。参考的书籍主要是《TCP/IP网络编程》(尹圣丽 著 金国哲 译)。我们知道,网络编程主要就是实现服务端与客户端的通信,那么就涉及到一系列通信过程的协议,也就是双方要商量好有一套共同的语境。这就又跳到计算机

2016-06-10 01:35:34 429

原创 Storm实时计算-新手学习(案例模仿)

前言:      实时计算必将在越来越多的业务场景下得以应用,故而有意学习一番。主要参考《Storm分布式 实时计算模式》一书第1章节《分布式单词记数》。一、要做的事      像mapreduce程序练手时常常用会word count 来演示,这里也用这个需求来演示storm实时计算。即是说,有一个消息源会源源不断地产生一些句子,然后最终的输出结果是所有句子中每个单词的词

2016-06-08 18:16:11 987

原创 使用C++ Boost Graph Library 进行社交网络分析入门篇

前言:     社交网络分析是一个常常会遇到的业务问题,故而笔者也一致在不断尝试不同的社交网络分析工具。之前使用过python networkx, igraph C library, 今日再介绍一款C++环境下的分析工具: Boost Graph Library(下文简称BGL), 该库据说可轻松处理百万级别节点规模的网络.  业界对该款工具的评语有:1. large, stabl

2016-05-30 11:19:40 3764

原创 设计模式学习系列之单例模式

一、什么是单例模式?单例模式的重点在于,一个类就只能创建一次实例化对象。而这个实例化对象是可以全局访问的。 二、单例模式实现的核心思路是什么?为了保持实例的唯一性,就要迫使外界无法通过构造函数去创建一个实例,所以可以将构造函数的访问控制权限定义为protected, 或者 private。同时,又必须能够创建一个实例化对象,于是可以通过在类中定义一个public 方法,来返回一

2016-05-08 18:14:54 336

原创 复杂网络节点重要性评价方法的对比-基于igraph C library

前言        在此之前,笔者写过一篇关于复杂网络中节点重要性评估方法的文章(http://blog.csdn.net/a_step_further/article/details/51176964),当时用spark实现过比较简单的方法。近期在业务应用中,又遇到需要对业务问题中不同用户的影响力进行分级的需求,那么重新捡起来复习下。这次使用igraph C library来做,因为

2016-04-18 08:24:49 10700

原创 复杂网络社区结构发现算法-基于igraph 标签传播算法

【前言】      继续我们本系列对复杂网络社区结构的方法探索,之前已经尝试过spark上标签传播算法、igraph 中随机游走算法、networkx中的clique渗透算法(见笔者相关文章),但一直局限于无向、无权重图的分析。本次,向前迈一步,引入权重。选用了igraph中的标签传播算法。【方法讨论】      相比于spark上的标签传播算法,发现igraph中的接口增

2016-04-18 08:22:55 9735 2

原创 复杂网络社区结构发现算法-基于python networkx clique渗透算法

前言    最近因为业务数据分析的需要,看社区发现相关的东东稍多些,刚刚写过一篇基于igraph C library的方法(http://km.oa.com/group/22323/articles/show/240332),然后想用kclique衍生的clique渗透算法时发现igraph C library 并未提供现成的api,对于懒人来说,这很不幸。既而发现networkx这个

2016-04-18 08:21:03 26464 18

原创 复杂网络社区结构发现算法-基于igraph C library

在社交网络数据分析领域,igraph算法包提供了多种应用接口,且支持C、python、R三种语言,通常大家使用python 或 R 的机会更多些。近期出于业务需要,希望提高关系数据计算的效率,我们探索了一下C library的使用方法,以随机游走这个社区挖掘算法为例,进行了尝试,特记录一下,希望能对相关领域的同事有所借鉴。 重点备注  1. 建网络,可以直接调用 igraph_re

2016-04-18 08:19:35 8223 1

原创 Spark开发环境配置(windows/Intellij IDEA 篇)

Intellij IDEA是一个蛮不错的IDE,在java/scala/Groovy领域深得人心。笔者之前使用的是Eclipse那一套开发环境,虽然也不错,但忍不住好奇心的驱使,折腾了一下IDEA,发现写起Spark程序来,“哎呦,不错哟!”,故总结一下在windows系统中的配置过程(在mac下的配置其实更简单一些),自己琢磨时还是费了点劲的,网上各种教程新旧正误繁杂,好不麻烦,加上笔者工作中最

2016-04-18 08:16:33 17116 4

原创 复杂网络节点重要性评价方法初探

在一个网络中,不同的节点起着大小不同的作用。以社交网络为例,有意见领袖的大V,有死寂沉沉的僵尸粉;以交通网络为例,有至关重要的交通枢纽,有无关痛痒的备用中转站。在使用复杂网络分析业务问题时,如何区分网络中不同节点的重要性程度,就是一个需要考虑的问题。为了解决我们自己的业务问题,顺便了解了一下相关的方法,特记录一下,若有益于相关领域的同学,则幸甚。    一、要实现的目标    对网

2016-04-18 08:13:28 23032 5

原创 初试主题模型LDA-基于python的gensim包

LDA是文本挖掘中常用的主题模型,用来从大量文档中提取出最能表达各个主题的一些关键词,具体算法原理可参阅KM上相关文章。笔者因业务需求,需对腾讯微博上若干账号的消息进行主题提取,故而尝试了一下该算法,基于python的gensim包实现一个简单的分析。准备工作安装python的中文分词模块, jieba安装python的文本主题建模的模块, gensim (官网 https://r

2016-04-18 08:11:04 14690 3

原创 基于NaiveBayes的文本分类之Spark实现

在尝试了python下面用sklearn进行文本分类(http://blog.csdn.net/a_step_further/article/details/50189727)后,我们再来看下用spark如何实现文本分类的工作,采用的算法同样是朴素贝叶斯。    此前,我们已经实现了hadoop集群环境下使用mapreduce进行中文分词(http://blog.csdn.net/a_st

2016-04-18 08:08:15 2510

原创 特征选择方法学习笔记

一直以来,笔者在实际工作中,对于特征变量的选取,往往是基于业务经验,根据一定的指标口径加工出一个个指标后,即投入到建模过程。而这些指标的好坏、计算口径是否恰当,较少有进行科学地分析与深入思考。与此同时,不少数据挖掘的教科书也对特征选择方法谈及甚少,笔者认为这不是个好现象,间接导致很多人看完了各种分类、聚类算法后,以为自己已经通晓数据挖掘了,但一遇到实际问题,又不知从何处下手了。今日打算学习一下该领

2016-04-04 21:43:35 10489

原创 数据科学系列读书笔记

记录一下笔者所阅读过的与大数据相关的书籍,以及阅读感受,以期为同仁提供此许参考建议。1. 《数据科学实战》(英文版本名称: Doing data science)笔者点评:这是一本有态度、有观点的书。从者在其中表达了对业界一些关于大数据说法的不认可。同时,作者没有装作万事通,而是很实在地讲,有些分析思路,他也不知道什么好什么不好,而要通过实践来尝试。比如第22页,作者写道 “你怎么知道什么

2016-04-03 09:26:59 1905

原创 大数据中的隐藏偏差

偶读Kate Crawford(供职于微软研究院)女士2013年的一篇旧文 ,仍有所触动,故而作读书笔记一篇。    先抛一个问题:数据科学的目标是什么?    笔者认为,人类社会很大的诱惑与恐惧均来自于对未来的不可知。我们因为害怕未知的疾病、灾难,而选择了宗教;因为不确定市场价格的未来走势,而热衷于K线图分析来试图聆听市场的提示;因为不知道谁更愿意购买我们的商品,而建立市场调研与

2016-04-02 11:35:56 3834

原创 提取字符串最长子串

思路:第1步:输入两个自定义的字符串第2步:求出所有共同的子串第3步:找到长度最长的子串下面是scala编程版本的实现import scala.collection.mutableobject longestSubstr { def allSubstr(str1:String, str2:String) :mutable.HashSet[String] = {

2016-03-25 08:09:33 895

原创 《机器学习》(周志华)读书笔记

周志华老师的新书《机器学习》,第28页论及训练集相关的方法时,讲道 “给定包含m个样本的数据集D,在模型评估与选择过程中由于需要留出一部分数据进行评估测试,事实上我们只使用了一部分数据训练模型。因此,在模型选择完成后,学习算法和参数配置已选定,此时应该用数据集D重新训练模型。这个模型在训练过程中使用了所有m个样本,这才是我们最终提交给用户的模型。“    这里,个人有一点异议。训练数据的量级本

2016-03-20 18:34:13 3450

原创 hive UDF 提取文本中的国家名

要提取文本中的国家名,我的思路是:1. 先分词,提取出地区名2. 将国家名通过外部文件的形式读入HASHSET3. 对第1步中提取的地区名到2中的HASESET进行查询,如果有,则返回当UDF需要读取外部文件时,一种方法是在注册函数时用add file 先将文件上传,但这条路我尝试之后没有走通; 第二种方法就是把外部文件先上传到HDFS的一个路径上,再在UDF逻辑中直接读取HDFS上的文件,该方法尝试通过了。

2016-02-24 23:45:55 1917

原创 hive UDF 提取文本中的地名

有时候,需要从文本字符串提取出地区名,为了在HIVE中使用方便,开发了一个HIVE UDF,核心在于使用了hanLP这样一个中文文本处理的神器。详细代码如下:import com.hankcs.hanlp.HanLP;import com.hankcs.hanlp.seg.Segment;import com.hankcs.hanlp.seg.common.Term;im

2016-02-24 10:05:43 2091 1

原创 scala读写文件

遍历输入文件的每一行,将第一个出现的空格,替换为tab分隔符。import java.io.{File, PrintWriter}import scala.io.Sourceobject codingPractice { def main(args: Array[String]) :Unit = { val fileName = args(0) val

2016-01-18 21:28:19 2281

原创 基于hanLP的中文分词详解-MapReduce实现&自定义词典文件

用mapreduce实现中文分词

2015-12-16 22:29:06 27070 7

原创 python scikit learn 文本分类

#!/usr/bin/env python#coding:utf-8import jiebafrom sklearn.feature_extraction.text import HashingVectorizerimport sysimport randomfrom sklearn.naive_bayes import GaussianNBfrom sklearn.naive_b

2015-12-05 22:00:51 1371

原创 统计学习笔记-KNN的缺陷

KNN的特点决定了当数据维度较高时,搜索k个最近邻,就需要k次全局计算,计算量太大。故而才有了KD树这样的思想,让空间划分为若干个子空间,形成树状的结构,搜索最近邻时,从叶子向上回溯。这样就把一个全局空间计算的问题,变成了局部空间计算的问题。

2015-11-01 11:06:23 476

原创 《统计学习》笔记

有的方法依赖于某一种或几种前提假设,当这些假设不满足时,方法也就不适用。而有的方法可适用于任何场景。

2015-09-14 23:01:06 384

空空如也

空空如也

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

TA关注的人

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