- 博客(240)
- 资源 (20)
- 收藏
- 关注
原创 NL2SQL概述:一文了解NL2SQL
很久没在CSDN上发文了,发篇文章,攒点收录。Author: 刘帝伟原文地址:http://www.csuldw.com/2019/10/20/2019-10-20-nl2sql-introduction/对于NL2SQL,也许在以前很多人会比较陌生。自从今年6月天池出现首届中文NL2SQL挑战赛之后,算是掀起了一股浪潮,中文NL2SQL也可以说是得到了进一步的发展。NL2SQL是CUI(C...
2019-10-23 21:36:46 8046 2
原创 机器学习之特征工程
本文是一篇关于特征工程的总结类文章,如有不足之处或理解有偏差的地方,还望大家多多指点。首先,给一张特征工程的思维导图: 【如果要浏览图片,建议将其下载到本地,使用图片浏览软件查看】 关于特征工程(Feature Engineering),已经是很古老很常见的话题了,坊间常说:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。由此可见,特征工程在机器学习中占有相当重要的地位
2015-10-25 12:49:28 37386 7
原创 Adaboost - 新的角度理解权值更新策略
关于Adaboost,在先前的一篇文章里,也介绍过它的步骤与实现,但理论上的推导未曾涉及。虽然Adaboost算法思想通俗易懂,但权值更新公式的由来,想必并非人人皆知。本文着重于从理论层面进一步阐述Adaboost,最终推导出迭代时的样本权值更新公式。
2016-08-28 21:57:49 10760
原创 概率分布 Probability Distributions
在机器学习领域,概率分布对于数据的认识有着非常重要的作用。不管是有效数据还是噪声数据,如果知道了数据的分布,那么在数据建模过程中会得到很大的启示。本文总结了几种常见的概率分布,比如离散型随机变量的分布代表伯努利分布以及连续型随机变量的分布代表高斯分布。对于每种分布,不仅给出它的概率密度函数,还会对其期望和方差等几个主要的统计量进行分析。目前文章的内容还比较简洁,后续再不断进行完善。本文主要从三个方面
2016-08-20 09:29:39 2891
原创 Inverted Index(倒排索引)
传统的正排索引指的是doc->word的映射,然而在实际工作中,仅仅只有正排索引是远远不够的,比如我想知道某个word出现在那些doc当中,就需要遍历所有的doc,这在实时性要求比较严的系统中是不能接受的。因此,就出现了倒排索引(inverted index ),详细内容参见Wikipedia-Inverted index。本文主要讲解的是如何使用Scala编写Spark程序来实现倒排索引。原理目的
2016-07-30 22:03:48 5032
原创 SparkSQL之更改表结构
本文篇幅较短,内容源于自己在使用SparkSQL时碰到的一个小问题,因为在之后的数据处理过程中多次使用,所以为了加深印象,在此单独成文,以便回顾。场景在使用SparkSQL进行数据处理时,碰到这样一种情况:需要更改DataFrame当中某个字段的类型。简而言之,就是需要更改SparkSQL的表结构。出于学习的目的,做了一个简单的Demo。下面来看看这个实例。Example…… ……首先使用spar
2016-07-23 18:04:15 7086
原创 Spark批量读取Redis数据-Pipeline(Scala)
最近在处理数据时,需要将原始数据与Redis的数据进行join,在读取Redis的过程中,碰到了一些问题,顺便做个笔记,希望对其他同学也有所帮助。实验过程中,当数据量还是十万级别的时候,逐个读取Redis并无压力;但当数据量达到千万级别时,问题就油然而生了,即使是使用Spark的mapPartitions也无法解决。因此,就考虑使用Redis的pipeline了(如果你有更好的方法,还请不吝赐教)。
2016-06-26 15:55:13 17440
原创 Spark算子篇-combineByKey实战
Spark算子combineByKeycombineByKey属于Key-Value型算子,做的是聚集操作,这种变换不会触发作业的提交,主要有三个参数,分别是:combiner function : 组合器函数,用于将RDD[K,V]中的V转换成一个新的值C1;mergeValue function :合并值函数,将一个C1类型值和一个V类型值合并成一个C2类型,输入参数为(C1,V),输出为新
2016-06-09 13:48:32 6474 1
原创 Python参数传递 - 引用传递&值传递
Python值传递和引用传递区别,哪些类型值传递,哪些是引用传递?值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参数的值。>>> a1 = 520>>> a2 = a1>>> print a1520>>> print a2520>>> a2 = a1 + 1>>> print a2521>>> print a1520>>> 引用传
2016-05-25 09:51:42 25634 2
原创 Linux环境下非root用户安装Python及相关库
以前在配置python的时候,都是使用系统安装的全局python,即root用户安装好的python,然而现在因为没有root权限,同时python版本并非自己所需,所以要在非root用户下使用自己指定的python,因此,重新整理了一份如何在Linux环境下使用非root用户安装python及其相关的库,以备不时之需。安装pythonpython版本库https://www.python.org/
2016-05-07 16:32:44 31700 2
原创 分类之性能评估指标
本文主要介绍几种常用的分类评估指标,同时介绍如何绘制ROC曲线以及AUC值的便捷的计算方法。最后再附上一个绘制ROC曲线和计算AUC的源码实现。Precision和Recall首先我们来看看下面这个混淆矩阵: pred_label/true_label Positive Negative Positive TP FP Negtive FN TN如上表所示,行表示预
2016-03-12 22:06:10 12095 1
原创 机器学习算法选择
本文主要回顾下几个常用算法的适应场景和优缺点!对于你的分类问题,你知道应该如何选择哪一个机器学习算法么?当然,如果你真的在乎精度(accuracy),最好的方法就是通过交叉验证(cross-validation)对各个算法一个个地进行测试,进行比较,然后调整参数确保每个算法达到最优解,最后选择最好的一个。但是如果你只是在寻找一个“good enough”的算法来解决你的问题,或者这里有些技巧可以参考
2016-02-26 20:40:04 3292 2
原创 机器学习数据集-MNIST
介绍在学习机器学习的时候,首当其冲的就是准备一份通用的数据集,方便与其他的算法进行比较。在这里,我写了一个用于加载MNIST数据集的方法,并将其进行封装,主要用于将MNIST数据集转换成numpy.array()格式的训练数据。直接下面看下面的代码吧(主要还是如何用python去读取binnary file)!MNIST数据集原网址:http://yann.lecun.com/exdb/mnist/
2016-02-25 18:46:04 19497 5
原创 CentOS下使用pip安装scipy
使用yum也可以安装,参考之前的博文,!Python学习-安装pip和scikit-learn这里使用pip来安装在linux上用pip安装scipy需要blas/lapack的支持。这里下载的是lapack-3.5.0版本。wget http://www.netlib.org/lapack/lapack-3.5.0.tgz下载lapack-3.5.0解压tgz文件解压缩tar -xzvf lapa
2016-01-13 18:28:40 2366
原创 Python笔记-几种取整方式
背景 在处理数据的时候,碰到了一个问题,就是取整方式!比如给定一个数值型列表,我需要分别获取它位置为长度的0%,25%,50%,75%,100%处的几个数字。但Python自带的int是向下取整,如果数字长度是5,理论上这五个数字分别对应0%,25%,50%,75%,100%的位置,但使用int,结果却并不是入次。比如当5*0.75时,如果加上int(5*0.75),就等于3,而我想要的应该是4,
2015-12-28 23:12:16 5486 1
原创 Python笔记-均值列表
一个小小的实例,做个小笔记!比如有三个列表,列表元素均为数值型,三个列表的长度都一样,现在我想要求这三个列表的均值,即求一个均值列表,对应元素为上述三个列表对应元素的均值。代码实现如下:def meanMethod(one,two,three): comb = zip(one,two,three) return [float(i+j+k)/3 for i,j,k in comb]第二
2015-12-28 23:09:30 4562
原创 Windows下搭建Hexo
此文只作为自己的手稿笔记!安装Python2.7安装git安装nodejs确保上面三个都安装成功,然后点击右键,进入【Git Bash】,输入【npm install -g hexo】这样hexo就安装完成了。如果在Linux系统下,会相对比较复杂点。这里就不介绍了。接着使用hexo server 开启server,然后把之前github上面的项目clone到本
2015-12-28 18:55:59 1952
原创 Linux笔记-结合nohup执行Python脚本时同步输出结果
在Linux中,可以使用nohup将脚本放置后台运行,如下:nohup python myscript.py params1 > nohup.out 2>&1 & 但直接使用上面代码,无法在程序运行过程中查看Python中的print "computing" 输出结果,比如在每次循环中使用print语句等。原因是python的输出有缓冲,导致nohup.out不能够马上看到输出。解决方法:使用-u
2015-12-22 20:55:30 8655
原创 协方差&协方差矩阵【matlab实例】
协方差矩阵协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算n!(n−2)!∗2\frac{n!}{(n-2)!*2}个协方差,那自然而然我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:Cn∗n=(ci,j,ci,j=cov(Dimi,Dimj))C_{n*n}=(c_{i,j}, c_{i,j}=cov(Dim_i, Dim_j))这个定
2015-11-30 16:49:12 43125 5
原创 机器学习-数据归一化方法
归一化方法有两种形式,一种是把数变为(0,1)之间的小数,一种是把有量纲表达式变为无量纲表达式。数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。下面是归一化和没
2015-11-15 21:23:18 4419 1
原创 Add header and footer to some file
今天整理资料的时候,发现要在很多文件中的头部和尾部添加相同的文本,于是自己使用Python做的一个简单的文件拼接功能,也可以说是文件追加,批量追加头尾内容,省事,还可以练习下Python。下面来介绍下:现在有三个文件,如下:content.txt 位于一个叫path的文件中;header.txt用于添加到content.txt头部的文件;footer.txt用于添加到content.txt尾部
2015-11-03 19:08:29 1235
原创 Scikit-learn Preprocessing 预处理
本文主要是对照scikit-learn的preprocessing章节结合代码简单的回顾下预处理技术的几种方法,主要包括标准化、数据最大最小缩放处理、正则化、特征二值化和数据缺失值处理。内容比较简单,仅供参考!首先来回顾一下下面要用到的基本知识。一、知识回顾均值公式:x¯=1nΣ_i=1nxi\bar{x}=\frac{1}{n}\Sigma\_{i=1}^{n}x_{i}方差公式:s2=1nΣ_i
2015-10-25 20:50:05 47313 7
原创 Windows下使用git push命令的无密码设置
在使用git时,每次进行git push时都需要输入用户名和密码,简直让人抓狂呀。下面介绍一种方法,可以避免用户名和密码输入,节省大量时间。1.添加环境变量首先在系统变量中添加一个环境变量HOME,内容为HOME%USERPROFILE% 2.新建配置文件由于使用的是Windows,所以进入%HOME%目录(如我的:C:\Users\username),新建一个名为”_netrc”的文件,文件
2015-10-22 16:46:40 2539
原创 Spring+SpringMVC+Mybatis整合系列(三)SSM框架整合
项目源码Github:https://github.com/csuldw/SSM_OEP通过前面两个博文[ Spring+SpringMVC+Mybatis整合系列(一)Maven安装和Eclipse配置](http://blog.csdn.net/dream_angel_z/article/details/49095539) 和 [Spring+SpringMVC+Mybatis整合系列(二)Eclipse新建
2015-10-13 14:40:03 6939 5
原创 Spring+SpringMVC+Mybatis整合系列(二)Eclipse新建Maven web项目
这是SSM搭建的第二篇,关于eclipse集成Maven的部分已经在上一篇中 Spring+SpringMVC+Mybatis整合系列(一)Maven安装和Eclipse配置详细介绍完,下面主要介绍使用eclipse新建Maven项目,以及创建完后的相关BUG的处理。
2015-10-13 14:10:25 3055
原创 Spring+SpringMVC+Mybatis整合系列(一)Maven安装与配置
最近有项目要做,想着还是来写一篇SSM搭建的文档吧!此搭建文档仅供参考!Spring+SpringMVC+Mybatis简称SSM,首先说明一下,由于搭建SSM的篇幅略长,如果放到一篇博文中,可能会给读者感觉阅读起来很吃力。其实,写博文也需要解耦,长篇大论并不是我的作风。这篇文章主要讲解搭建SSM所需要的初始环境,适合新手。下面来介绍下SSM搭建的初始环
2015-10-13 14:09:39 3075
原创 机器学习-牛顿方法&指数分布族&GLM
回头再温习一下Andrew Ng的机器学习视频课,顺便把没写完的笔记写完。本节内容牛顿方法指数分布族广义线性模型之前学习了梯度下降方法,关于梯度下降(gradient descent),这里简单的回顾下【参考感知机学习部分提到的梯度下降(gradient descent)】。在最小化损失函数时,采用的就是梯度下降的方法逐步逼近最优解,规则为θ:=θ−η∇θℓ(θ)\theta := \the
2015-10-06 13:31:26 11586 3
原创 机器学习-感知机perceptron
在机器学习中,感知机(perceptron)是二分类的线性分类模型,属于监督学习算法。输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法 对损失函数进行最优化(最优化)。感知机的学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。感知机预测是用学习得到的感知机
2015-10-05 18:28:19 50537 15
原创 机器学习—过拟合overfitting
今天在知乎上看到一个问题:人脑有海量的神经元(参数),为什么没有过拟合?面对各个网友的回答,突然发现自己对于过拟合的概念似乎理解的不是很透彻,或者说之前就没有完全理解透。其中有个人这么说“样本少feature多才overfitting”也有人提到看红框标注部分,也就是说样本多就不会发生过拟合么。先不管知乎这个问题了,为了搞清过拟合的概念,再次跑到wikipedia去搜寻答案。下面是wikipedia
2015-10-04 20:31:30 16469 1
原创 机器学习算法-K最近邻从原理到实现(Python)
引文:决策树和基于规则的分类器都是积极学习方法(eager learner)的例子,因为一旦训练数据可用,他们就开始学习从输入属性到类标号的映射模型。一个相反的策略是推迟对训练数据的建模,直到需要分类测试样例时再进行。采用这种策略的技术被称为消极学习法(lazy learner)。最近邻分类器就是这样的一种方法。1.K最近邻分类器原理首先给出一张图,根据这张图来理解最近邻分类器,如下:
2015-10-04 17:20:16 11782
原创 Python加载csv文件的两种方式
数据集以kaggle的Digit Recognizer的train.csv文件为例,数据截图如下:说明,csv文件中每行数据的每个特征列都是用逗号“,”隔开。该CSV文件中除了保存数值外,还有一些属性值,如第一行以及第一列的label标签。所以在处理是需要进行相应的处理。下面介绍下两种加载这种csv文件的方法方法一:使用Python的csv模块csv模块中的函数reader(csvfile, dia
2015-10-04 15:07:53 48106 1
原创 机器学习-统计学习方法概论
统计学习由监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)和强化学习(reinforcement learning)组成。统计学习方法包括模型的假设空间、模型的选择准则以及模型学习的算法,称其为统计学习方法的三要素:模型(model)、策略(strategy)和算法(algor
2015-09-26 15:15:21 2069
原创 机器学习算法-决策树理论
用较少的东西,同样可以做好的事情。越是小的决策树,越优于大的决策树。引文数据分类是一个两阶段过程,包括学习阶段(构建分类模型)和分类阶段(使用模型预测给定数据的类标号)。决策树分类算法是监督学习的一种,即Supervised learning。分类过程的第一阶段也可以看做学习一个映射或函数y=f(x),它可以预测给定元组X的类标号y。在第二阶段,使用模型进行分类。首先评估分类器的预测准确率。这个
2015-09-21 08:04:22 3753
原创 机器学习个人资料整理
学习机器学习也有很长一段时间了,前段时间在论文中应用了GTB(Gradient Tree Boosting)算法。在我的数据集上GTB的性能比随机森林要稍微强一点,整个实验做完之后,有许多东西都来不及及时整理,很多都遗忘了。打算接下来的时间里,好好整理下自己的学习资料,这份资料绝对不是一时半会就整理得完的,先开个头吧,以后会间断性更新该博文的。下面来做个资料整理吧。书籍推荐机器学习的书籍很多,下面推
2015-09-17 21:36:54 3943 6
原创 机器学习相关文章翻译目录-CSDN云计算专栏发布
翻译文章2015-09-14 LSTM实现详解 2015-09-10 从零实现来理解机器学习算法:书籍推荐及障碍的克服 2015-09-10 深度学习:生成艺术的新范式与版权的烦恼 2015-09-09 推荐系统评价:NDCG方法概述 2015-08-31 机器学习开发者的现代化路径:不需要从统计学微积分开始 2015-08-27 基于Python的卷积神经网络和特征提取 2015-0
2015-09-16 16:26:03 1240
原创 机器学习算法-梯度树提升GTB(GBRT)
Introduction决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等。但是同时,单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不太理想。模型组合(比如说有Boosting,Bagging等)与决策树相关的算法比较多,如randomForest、Ad
2015-08-29 11:11:35 27566 3
原创 2015年8月总结
有时候,总想写点什么,可又不知道从何开始。每当要表达一些东西的时候,总会有一种语尽词穷的感觉,道不出那种振奋人心的话。“书到用时方恨少”大概就是这个意思吧。有时间,再回头学学语文,看看美文,涨涨知识吧。下面来总结一下自已这几个月的学习成长吧。以前总认为别人了不起,总感觉别人的知识面怎么会如此的宽泛,然后敬仰之心便犹如滔滔江水,连绵不绝。每次都会想着以后我也要好好充实自己的业余爱好,为生活增添一份乐趣
2015-08-16 11:09:21 1116
原创 编译性语言和解释性语言
常见的编译性语言和解释性语言,解释性语言:Java、Python、Perl、C#、JavaScript、VBScript、Ruby、MATLAB等。 编译性语言:C/C++、Pascal/Object Pascal(Delphi)等。计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。机器翻译的方式有两种,一个是编译,一个是解释。两
2015-08-04 09:29:00 8499
visio_2010_64位.part3.rar
2018-04-29
visio 2010 64 bit-part2
2018-04-29
visio 2010 64 bit-part1
2018-04-29
visio 2010 64 bit-part4
2018-04-29
决策树算法python实现
2015-05-25
python2.7.5安装及其相应的matplotlib的包及依赖
2015-05-25
jQuery+Struts+Ajax无刷新分页
2015-04-13
jasperreports-5.5.1_struts2.3整合用到的jar包
2014-05-28
php-5.3.6-Win32-VC9-x64.zip
2014-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人