- 博客(93)
- 收藏
- 关注
原创 Sigmoid function 的数学原理
Sigmoid function详解本文阅读对象为有一定machine learing基础,并且在模型的数学含义层面有意愿探索的同学。什么是Sigmoid function一提起Sigmoid function可能大家的第一反应就是Logistic Regression。我们把一个sample扔进sigmoid中,就可以输出一个probability,也就是是这个sample属于第一类或第二类的概率
2017-11-26 20:31:47
11070
6
原创 好久没写技术博了,说说最近的生活
2017.7.7正式领双证毕业,至此结束了18年的学生生涯开启人生新篇章。现在在入职百度的路上,机器学习算法策略工程师,凤巢。感谢哈尔滨工业大学极佳的学习氛围以及我的导师同学给我的帮助。很幸运的,认识了我的妻子,哈工大同届,现在签了某D轮创业公司产品经理,薪水跟我持平,今天是我们结婚第40天。感谢我的父母在大学期间给予了我同龄人中最好的物质支持,爸爸
2017-07-10 22:04:21
2743
14
原创 Pandas 对Dataframe结构排序
Dataframe结构放在numpy来看应该是二维矩阵的形式,每一列是一个特征,上面会有个列标题,每一行是一个样本。对Dataframe结构的某一列进行排序方法如下:# 对df表中的user_id这一列进行排序,默认是从小到大排df = df.sort_index(by='user_id')对多列进行排序方法如下:# 对user_id,sku_id这两列进行排序df = df
2017-03-29 16:32:17
9676
原创 Pandas 合并多个Dataframe(merge,concat)
在数据处理的时候,尤其在搞大数据竞赛的时候经常会遇到一个问题就是,多个表单的合并问题,比如一个表单有user_id和age这两个字段,另一个表单有user_id和sex这两个字段,要把这两个表合并成只有user_id、age、sex三个字段的表怎么办的,普通的拼接是做不到的,因为user_id每一行之间不是对应的,像拼积木似的横向拼接肯定是不行的。pandas中有个merge函数可以做到这个实用的
2017-03-29 10:08:02
132835
3
原创 服务价值特征分布的演化预测
问题描述:挖掘不同服务价值特征(评价实体)并计算权重值,生成在各个时间段的分布情况。通过已知的时间序列分布,预测未来某个时刻的服务价值特征权重值。数据的形式如下图所示:每一行表示一个服务价值特征(评价实体),每一列表示一段时间,比如某一个月、某一天等等,每一列是严格按照时间顺序由远及近排列的。假设我们的目标是预测上图中month_j+1这一列中的所有数值(也可以预测更加
2017-03-06 10:38:00
1381
原创 数据预处理之 标准化/正则化 处理
标准化(Scale)和正则化(Normalization)是两种常用的数据预处理方法,其作用是让数据变得更加“规范”一些。在文本聚类等任务中使用的比较多。针对某数据,如果不适用数据标准化、正则化,展示的情况如下图1.数据标准化公式为:(X-mean)/std 计算时对每个属性/每列分别进行。将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来
2017-01-08 09:10:12
12185
原创 Pandas 创建空的DataFrame
平时写pyhton的时候习惯初始化一些list啊,tuple啊,dict啊这样的。一用到Pandas的DataFrame数据结构也就总想着初始化一个空的DataFrame,虽然没什么太大的用处,不过还是记录一下:# 创建一个空的 DataFramedf_empty = pd.DataFrame(columns=['A', 'B', 'C', 'D'])上面创建的DataFrame有
2017-01-06 09:45:31
195577
3
原创 商品评论中的实体情感分析
在之前的文章中我已经将商品评论中的评价实体,也就是特征(feature)给挖掘出来了,我看了一下,挖掘的效果还是不错的。原文链接:http://blog.csdn.net/chixujohnny/article/details/52794685下面一步要做的是施加情感因子,也就是说,要将人们评论时候所连带的感情程度施加一下。这项任务的归类应该是情感分析技术。目前该类问题的情感分析技
2017-01-04 00:03:43
7565
7
原创 Python中的 .join()用法
Python中的 .join() 函数经常被大家使用到,之前面试的时候也被问到过,在这里记录一下:这个函数展开来写应该是str.join(item),join函数是一个字符串操作函数str表示字符串(字符),item表示一个成员,注意括号里必须只能有一个成员,比如','.join('a','b')这种写法是行不通的举个例子:','.join('abc')上面代码的含义是
2016-11-23 10:45:45
150331
23
原创 Python迭代器,一行一行读取文本
在处理文本的时候,首先要做的是读取一下文本文件,一般的方法如下:corpus = open('这个位置放文件绝对路径', 'r').readlines()将这个文本文件按行读取,每行一个元素放到一个list中。但是需要将整个文本文件先全部装入内存中。如果文本文件太大,不能一次性读入内存怎么办。要使用Python中的迭代器,一次读取一个成员,然后对这个成员进行某种操作就可以了。具体方
2016-11-07 20:18:56
18982
原创 pip install operation not permitted 解决办法
由于重装了系统,需要再pip install 一下 gensim,但是在下载完所有的依赖包uninstall six的时候出现了operation not permitted 的问题,我以为是没加sudo,但是依旧不行。百度了一下,发现OSX EI Captain中有一种SIP安全设置(System Integrity Protection ),它禁止让软件以 root 身份来在 Ma
2016-10-27 10:32:41
2527
原创 服务产品(商品)评论中的产品特征挖掘方法
也是好久没写博客了,前段时间一直在找工作,没有做什么实质性的工作。最近工作也定下了,百度流量质量控制部的反作弊算法团队,不算是百度的什么土豪团队,但是99%以上的流量收入都是要从这个团队过一遍的,团队资历实力可见一斑。好了不吹b了,说说这个阶段要做的东西:从服务产品的评论中挖掘服务产品的特征,不理解的话举个例子:“这饭店环境还真是不错,就是菜码有点太大了!”很明显,加了高亮部分
2016-10-13 10:39:49
4674
原创 文本聚类教程
本人曾做机器学习方向,由于实习需要转做文本聚类、分类的工作,虽然大致相似,但仍是新手,过程和结果也仅供大神指教。本博包含了作者两周的专心研究调试及由数千行测试得到了300余行代码精华,如需转载,请注明出处。什么是文本聚类?文本聚类是将一个个文档由原有的自然语言文字信息转化成数学信息,以高维空间点的形式展现出来,通过计算那些点距离比较近来将那些点聚成一个簇,簇的中心叫做簇心。一个
2016-07-08 16:37:36
18585
28
翻译 聚类效果好坏的评价指标
原文标题:《Understanding of Internal Clustering Validation Measures》发表在2010IEEE International Conference on Data Mining 应该译为“内部聚类效果测量的一些理解”,我译成了大白话,也没错,这篇文章讲的就是如何评价你聚类好坏的。下面译文开始:#--
2016-07-07 18:33:08
97139
22
原创 Python对中文字符的处理(utf-8/ gbk/ unicode)
现在在做分词的时候会处理大量有关中文字符的处理,经常输出乱码,老大让我暂时不考虑字符编码,但是为了看着爽不得不研究一下。分词系统:NLPIR因为不同的编译环境默认的汉字编码可能不一样,我的环境是OSX10.11 + Pycharm + python2.7文件第一行永远默认# coding: utf-8数据集我用的是“tc-corpus-train”这个是数据,百度一
2016-06-29 15:02:09
173774
10
原创 Python将list中的string批量转化成int/float
最近在处理词向量这块,因为平时习惯把处理的词向量保存成文件,但是txt文件读取出来的都是string格式的数字,有必要转成float型上网查了一下教程,在这记录一下:data = ['1','3.2','2']data = map(eval, data)print data不知道map函数怎么实现的,没看官方文档,反正实现了就好输出:[1, 3.2, 2]原有string格
2016-06-28 10:11:30
65379
6
原创 Python遍历文件夹
最近做文本聚类要扫描大量的文本,因此,需要遍历文件夹和子文件夹下面的大量文件,记录一下python是如何实现的。# python遍历文件夹内所有文件,返回文件名即后缀import osfor filename in os.listdir(r'/Users/John/Documents/NLPStudy/tc-corpus-train/C3-Art/'): print fil
2016-06-27 10:23:57
1016
原创 TF-IDF
TF-IDF(term frequency–inverse document frequency)是一种基于统计方法的常用加权技术。它的目的是评估一个字词对一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比,但同时会随着它在语料库中出现的频率成反比下降。这种算法经常被用于自然语言处理和搜索领域。 词频(term frequency,T
2016-06-14 18:21:47
1501
原创 LDA主题词模型
最终确定去360做安全网关部分的自然语言处理环节,在此感谢360和马主管的赏识!未来2个月的学习内容应该跟NLP和C++密切相关。LDA主题词模型探析参考博主:http://www.tuicool.com/articles/E7RVFzU 内容再自行整理得来,侵权删。LDA是什么? LDA(Latent Dirichlet Allocation 文档
2016-06-07 17:55:28
12032
原创 面试题15:单链表中倒数第k个节点
题目输入一个链表,输出该链表中倒数第k个节点。比如链表是1->2->3->4->5->5,输出倒数第三个节点就是4思路因为单链表中每个节点的指针指向是单向的,并且还不知道这个链表有多长,笨方法是先遍历一下链表,知道链表长度后再遍历一次找到倒数第k个节点。时间复杂度O(2n),感觉有点慢。下面使用新的方法:设置两个指针,一个指针在头结点,另一个指针在头指针前面k-1个位置,然
2016-05-24 12:19:49
1577
原创 记录一下上一阶段的面试
大概10多天没写博客了,上周去北京呆了一周,找找实习,参加了凯普斯尖子生峰会(并不是尖子生,被硬拉去的),也顺便看看我在各大公司眼中应该是个什么位置。 正式面试的有两家公司,汽车之家和360。汽车之家个人对汽车行业可以说是近乎于狂热的态度,我想HR可能是看中了这点吧,砸碎的就不说了,说说面试:面试官是个40多岁的爸爸级人物,看相貌应该是博士出身(一身工大蓝,头
2016-05-22 23:48:48
1017
原创 面试题14:调整数组顺序使奇数位于偶数前面
题目描述:给定一个整数数组,实现一个函数来调整数组中的数字顺序,使得奇数都在这个数组中的前半部分,偶数都在数组中的后半部分。比如数组为:[1,2,3,4,5]。那么调整完后的数组为:[1,3,5,2,4]笨方法笨方法是从数组的第一个成员开始寻找,每当遇到一个偶数就将它取出,将后面所有的成员依次向前挪一位,再将这个取出的偶数放在最后一位。时间复杂度为O(n^2)好方法
2016-05-06 15:51:15
977
1
原创 面试题13:在O(1)时间删除单链表结点
题目:给定单链表的头指针和一个结点指针,定义一个函数在O(1)时间删除节点。一般思路从头开始顺序遍历单链表,遇到要删除的节点跳过去就行了O(1)思路因为已经给了要删除节点的指针,可以找到待删除节点的写一个节点的值,复制到待删除节点,将该节点的next指针指向next.next就行了,流程如下:(1) a->b->c->d->e 要删除的是c节点(2) a->b->d
2016-04-25 10:06:25
1465
原创 面试题12:打印1到最大的n位数
很显然这是一个大数问题,即如果输入的数是个大数怎么办,Python中的raw_input()直接将键盘输入的各个字符转换成字符串,然后再对字符串模拟加法就可以了。没什么难度,但是实测效率不高不知道是不是因为Python效率低的原因源码#coding:utf-8# 面试题12:打印1到最大的n位数import typesdef SumEmulator(num): # num =
2016-04-24 20:15:01
1087
原创 面试题11:数值的整数次方
这个问题我想很多人拿到之后直接设置一个for循环,让底数自乘次方和次数就行。但是没有考虑到底数是0、指数是0、以及指数是负数的情况源码#coding:utf-8# 不得使用库函数,实现数值的整数次方def Power(base, exponent): answer = 1.0 if isEqualToZero(base, 0.0) == True:
2016-04-24 20:10:05
516
原创 面试题10:二进制数中1的个数
这是一个比较经典的位运算问题,我们先回顾一下什么是位运算:左移运算左移运算符m0000101010001010右移运算右移运算符m>>n表示将m右移n位。右移n位的时候最右边的n位将被丢弃,但右移时处理的最左边位要稍微复杂一点:m为无符号数值用0填补最左边的n位,00001010>>2 = 00000010m为有符号数值,比如负数用1填补最左边的
2016-04-21 10:33:20
552
原创 面试题9:斐波那契数列
书中说递归法比循环法更慢,实测速度差不多一样,不知道怎么回事。很简单,直接上代码吧:# coding:utf-8# 递归计算斐波那契数列def FibonacciRecursion(n): if n < 0: return False elif n == 0: return 0 else: FibonacciN
2016-04-21 09:36:56
759
原创 京东2016面经(算法春招实习)
经历一轮轮过关斩将也是成功的过了HR面,上面的状态不知道是不是等待拿offer,不出意外应该是没问题了吧,下面聊聊面试过程。一面一面技术面在一个五星级酒店宴会厅进行的,由于跟腾讯冲突时间导致到场的人并不是很多。说正题,面试官首先问了项目,然后问了些细节问题,不是很难,比如说请手写一下决策树中信息增益的公式,说说信息增益代表一个什么意思(数据内的混乱度,也叫作信息熵),某个特征的信息增益对总
2016-04-20 15:04:57
7622
14
原创 面试题8:旋转数组的最小数字
由于腾讯面试问到了剑指offer原题,吃了亏,今天开始开一个剑指offer专题,训练一下自己。旋转数组的最小数字问题描述:将一个严格递增的数字序列从第i个位置切分,将有半部分挪到左半部分,比如[1,2,3,4,5,6]->[3,4,5,6,1,2],输出序列中最小的数字的位置笨方法是从左到右扫描一遍,但是O(n)的复杂度肯定是不行的。根据问题描述的性质可知,变换后的序列的第一个数是
2016-04-15 20:23:34
647
原创 腾讯2016面经(基础研究春招实习)
十分侥幸的我通过了腾讯基础研究的笔试,4.14在哈尔滨的一面总结一下吧,反正是过了,正在等二面消息。面试小哥人很好~很有耐心,我能看出他已经很累了(下午5:30面的),依旧坚挺,表扬鹅厂!1)自我介绍,一分半钟,期间说我的项目比较多他比较满意,也就是三个拿得出手,内容写的比较满而已,纠结简历的可以不用放很多没用的东西了。2)说说你的第一个项目(服务众包的协作模式评估器)怎么做的:大
2016-04-15 10:55:27
4225
3
转载 python.format() 格式化字符串
这个功能是python2.6及之后才引进的功能,今天看源码遇到的,记录一下:语法它通过{}和:来代替%。“映射”示例通过位置In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}
2016-04-13 09:09:26
827
原创 python.enumerate() 同时遍历索引+内容
今天看源码的时候看到这样一段:for i, score in enumerate(top_scores):不知道是什么意思就查了一下手册,手册是这么说的:enumerate()函数可以同时取出列表(元组)中的成员的索引和内容也就是说采用原始的办法,上面的代码应该这么的写:for i in range(len(top_scores)): index = i ite
2016-04-12 15:56:54
3479
原创 京东2016春招(实习)笔试+编程题
岗位:数据挖掘、机器学习、算法、模式识别京东这套题出的耗时可以的,难度不是特别大,编程题感觉非常难理解,光看题干就看了老半天,当时简直吓尿了,一琢磨其实很简单。我只能回忆一部分内容,25选择+2编程选择:(#)有两个向量(3,2,0,5,0,0,0,2,0,0)和(1,0,0,0,0,0,0,1,0,2)计算它们的余弦相似度(#)希尔排序:10,20,8,25,35,6,18,
2016-04-09 21:17:29
2081
原创 numpy.std() 计算矩阵标准差
计算矩阵标准差>>> a = np.array([[1, 2], [3, 4]])>>> np.std(a) # 计算全局标准差1.1180339887498949>>> np.std(a, axis=0) # axis=0计算每一列的标准差array([ 1., 1.])>>> np.std(a, axis=1) # 计算每一行的标准差array([ 0.5, 0.5])
2016-04-09 18:01:33
99880
原创 numpy.mean() 计算矩阵均值
计算矩阵的均值>>> a = np.array([[1, 2], [3, 4]])>>> np.mean(a) # 将上面二维矩阵的每个元素相加除以元素个数(求平均数)2.5>>> np.mean(a, axis=0) # axis=0,计算每一列的均值array([ 2., 3.])>>> np.mean(a, axis=1) # 计算每一行的均值array([ 1.5, 3
2016-04-09 17:50:37
128958
1
原创 pandas.loc 选取指定列进行操作
今天发现用pandas里面的数据结构可以减少大量的编程工作,从现在开始逐渐积累,记录一下:使用标签选取数据:df.loc[行标签,列标签]df.loc['a':'b']#选取ab两行数据df.loc[:,'one']#选取one列的数据df.loc的第一个参数是行标签,第二个参数为列标签(可选参数,默认为所有列标签),两个参数既可以是列表也可以是单个字符,如果两个参数都为列表则
2016-04-08 13:31:37
49976
转载 python.zip() 多列表压缩
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:1.示例1:x = [1, 2, 3]y = [4, 5, 6]z = [7, 8, 9]xyz = zip(x, y, z)print xyz运行的结果是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]从这个结果可以看出z
2016-04-07 10:35:55
7709
原创 numpy.linalg.eig() 计算矩阵特征向量
在PCA中有遇到,在这里记录一下计算矩阵的特征值个特征向量,下面给出几个示例代码:在使用前需要单独import一下>>> from numpy import linalg as LA>>> w, v = LA.eig(np.diag((1, 2, 3)))>>> w; varray([ 1., 2., 3.])array([[ 1., 0., 0.],
2016-04-05 11:53:07
75313
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人