自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lenskit

逆水行舟 不进则退

  • 博客(135)
  • 资源 (7)
  • 论坛 (2)
  • 问答 (2)

原创 解析经纬度

记录-- 解析经纬度selectsplit(regexp_extract('POINT(120.400870660833 27.500001565702)','([0-9.]+ [0-9.]+)'),' ')[2],split(regexp_extract('POINT(120.400870660833 27.500001565702)','([0-9.]+ [0-9.]+)'),' ')[1]

2020-08-10 10:59:44 78

原创 sparksql建表时java.sql.BatchUpdateException: Duplicate entry ‘‘ for key ‘PRIMARY‘

此报错大概率是因为列名有问题(中文列名或列名过长)When creating a table in Hive with column names over 128 characters an error like below is raised. Note: "COLUMNS_V2" is a Hive metadata table.具体链接:https://support.oracle.com/knowledge/Oracle%20Database%20Products/2255940_1.ht.

2020-07-17 14:49:22 298

原创 Spark入门

本篇是介绍Spark的入门系列文章,希望能帮你初窥Spark的大门。一、 Spark概述1 首先回答什么是Spark?Spark是一种基于内存的快速,通用,可扩展的大数据计算引擎。那有的同学可能会问,大数据计算引擎,MapReduce不就是吗?为什么又来个Spark?其中最大的原因还是MapReduce自身的短板导致:1. 基本运算规则从存储介质中采集数据,然后进行计算,最...

2019-11-02 16:03:35 192 1

原创 Python机器学习及实践——进阶篇6(超参数搜索)

前面所提到的模型配置,我们一般统称为模型的超参数,如K近邻算法中的K值 支持向量机中不同的和函数等。多数情况下,超参数的选择是无限的。因此在有限的时间内,除了可以验证人工预设几种超参数组合以外,也可以通过启发式的搜索方法对超参数组合进行调优。我们称这种启发式的超参数搜索方法为网格搜索。同时由于超参数的的验证过程之间彼此独立,因此为并行计算提供了可能。网格搜索:由于超参数的空间是无尽的,因此超...

2019-08-18 19:01:50 183

原创 Python机器学习及实践——进阶篇5(模型检验)

前面时不时提到模型检验或者交叉验证等词汇,特别是在对不同模型的配置,不同的特征组合,在相同的数据和任务下进行评价的时候。究其原因是因为仅仅使用默认配置的模型与不经处理的数据特征,在大多数任务下是无法得到最佳性能表现的。因此在最终交由测试集进行性能评估之前,我们希望可以利用手头现有的数据对模型进行调优,甚至可以粗略地估计测试结果。这里需要强调的是,前面所使用的测试数据是由原始数据中采样而来,并且...

2019-08-18 18:59:02 479

原创 Google OR-Tools简介

组合优化可以用来从很多可能解中寻找到问题的最佳解。比如下面这些例子:一、车辆路线:为在给定限制条件下提取和交付包裹的车队找到最佳路线(例如,“此卡车不能承载超过20000磅”或“所有交付必须在两小时内完成”)。二、调度:为一组复杂的任务找到最佳的调度,其中一些任务需要先于其他任务在一组固定的机器或其他资源上执行。三、装箱:尽可能多地将各种尺寸的物品装入存放固定数量以及有最大承重的箱...

2019-07-05 16:05:45 1817

原创 Python机器学习及实践——进阶篇4(模型正则化之L1正则&L2正则)

正则化的目的在于提高模型在未知测试数据上的泛化力,避免参数过拟合。由上一篇的例子可以看出,2次多项式回归是相对较好的模型假设。之所以出现如4次多项式那样的过拟合情景,是由于4次方项对于的系数过大,或者不为0导致。因此正则化的常见方法都是在原模型优化目标的基础上,增加对参数的惩罚项。以我们之前在线性回归器一节中介绍过的最小二乘优化目标为例,如果加入对模型的L1范数正则化,那么新的线性回归目标如下...

2019-05-26 18:06:31 598

原创 Python机器学习及实践——进阶篇3(模型正则化之欠拟合与过拟合)

一个需要记住的重要事项:任何机器学习模型在训练集上的性能表现,都不能作为其对未知测试数据预测能力的评估。这里讲详细及时什么是模型的泛化力以及如何保证模型的泛化力,一次会阐述模型复杂度与泛化力的关系以及使用L1范数正则化与L2范数正则化加强模型的泛化力,避免模型参数过拟合。所谓拟合,是指机器学习模型在训练的过程中,通过更新参数,使得模型不断契合训练集的过程。本篇将使用一个“比萨饼价格预...

2019-05-26 11:13:39 330

原创 Python机器学习及实践——进阶篇2(特征提升之特征筛选)

总体来说,良好的数据特征组合不需太多,便可以使得模型的性能表现突出。比如我们在“良/恶性乳腺癌肿瘤预测“问题中,仅仅使用两个描述肿瘤形态的特征便取得较高的识别率。冗余的特征虽然不会影响模型性能,但会浪费cpu的计算。主成分分析主要用于去除多余的那些线性相关的特征组合,这些冗余的特征组合并不会对模型训练有更多贡献。特征筛选与PCA这类通过选择主成分对特征进行重建的方法略有区别:对于PCA而言,我...

2019-05-26 10:46:47 1028

原创 Python机器学习及实践——进阶篇1(特征提升之特征抽取)

在前面的一系列文章中,已经介绍了大量经典的机器学习模型,并且使用python语言分析这些模型在许多不同现实数据上的性能表现。细心的读者会发现一个问题,我们之前使用的数据几乎都经过了规范化处理,而且模型也大多只是采用了默认的初始化配置。换言之,尽管我们使用经过处理后的数据,在默认配置下学得一套可以拟合数据的参数,并用这些参数和默认配置取得了一些看似良好的性能表现;但是我们无法解决最为关键的问题:实际...

2019-03-23 13:10:01 547

原创 用TensorFlow来实现梯度下降

本篇我们尝试使用批量梯度下降。首先我们将通过手动计算梯度来实现,然后使用TensorFlow的自动扩展功能来使TensorFlow自动计算梯度,最后我们将使用几个TensorFlow的优化器。使用梯度下降时,首先要对输入特征向量进行归一化,否则训练会慢很多,可以使用TensorFlow,numpy,sklearn的standardscaler或其他解决方案,下面的代码会假定此规范化已经完成...

2019-03-19 20:22:55 309

原创 tensorflow报错Can not squeeze dim[1], expected a dimension of 1, got n for解决办法

这是因为tf的文档要求label必须是一个单独的值,而不是一个one-hot编码后像[1,0,0], [0,1,0], [0,0,1].的值。

2019-03-08 11:36:18 4612

原创 运行你的第一个TensorFlow程序

如果你已经安装了anaconda,可以直接使用pip来安装TensorFlow。安装命令:pip install --upgrade tensorflow如果你有gpu,需要安装tensorflow-gpu而不是tensorflow。运行下面的命令来测试是否安装成功:python -c 'import tensorflow;print(tensorflow.__version_...

2019-03-06 10:47:24 1419

原创 python使用graphviz工具画图

本示例数据集为鸢尾花数据集,运行后会生成两个文件,一个是iris,一个是iris.pdf。from sklearn.datasets import load_irisfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.tree import export_graphvizimport graphviziris = ...

2019-02-28 16:56:03 1479

原创 hive中对带分号的字符串做split分割

直接对字段进行split(';')操作会报错,其原因是因为:分号默认是sql的结束字符,因此需要用分号的二进制\073来表示。如果此时对字段进行此操作是没有问题的,比如:-- column1里的字符串是以分号分割的select split(column1,'\073') from xxx但是如果是以字符串进行尝试还是会报错,比如:select split('aa;bb;cc'...

2019-02-26 14:39:55 4135

原创 presto和hive将查询结果保存到本地的方法

Insert overwrite LOCAL directory 'file:///xx/xx/xxx' ROW format delimited fields terminated BY "\t"上面是hive中将查询语句的结果插入到文件夹的方法。presto的方法如下:presto --server ip:port --catalog hive --schema default...

2019-01-28 13:29:58 1816

原创 presto列转行

原数据有一列数据为[1,2] , [0,2]这样,需要统计每种类别具体的占比,所以需要行转列。由于数据在hive中,建表人员为了导数方便将字段类型设置成了string,而presto的列转行函数只能处理Array格式,尝试了一波cast as array,均以失败告终。一怒之下直接用两次repalce和一次split得到了array,后面就好办了。presto列转行示例:select...

2019-01-17 10:16:06 3546

原创 Python机器学习及实践——特征降维

特征降维是无监督学习的另一个应用,目的有两个:一是我们经常在实际项目中遭遇特征维度非常高的训练样本,而往往无法借助自己的领域知识人工构建有效特征;二是在数据表现方面,我们无法用肉眼观测超过三个维度的特征。因此特征降维不仅重构了有效的低维度特征向量,同时也为数据展现提供了可能。PCA是最为经典和实用的特征降维技术,特别在辅助图形识别方面有突出的表现。本篇我们依然沿用上篇的“手写体数字图像”全集数...

2018-12-16 13:04:11 1815

原创 用python连接hive和presto并进行查询和插入

安装pyhive,连接presto并用pandas读取:​import pandas as pdfrom sqlalchemy.engine import create_enginefrom pyhive import hive# 准备语句sql = "select * from table"engine1 = create_engine('presto://ip:port/...

2018-12-12 15:51:39 5539

原创 代码测试通过,振奋人心的消息!

效果图:代码如下:print(""" ,@@@@@@@@@@,,@@@@@@@% .#&@@@&&.,@@@@@@@@@@, %@@@@@@%* ,@@@% .#&@@@&&. *&@@@@&( ,@@@@@@@% %@@@@@, ,@@, ...

2018-12-07 11:18:59 206

原创 Python机器学习及实践——无监督学习经典模型(K-means)

无监督学习着重于发现数据本身的分布特点。与监督学习不同,无监督学习不需要对数据进行标记。从功能角度讲,无监督学习模型可以帮助我们发现数据的“群落”,同时也可以寻找“离群”的样本;另外对于特征维度非常高的数据样本,我们同样可以通过无监督的学习对数据进行降维,保留最具有区分性的低纬度特征。数据聚类是无监督学习的主流应用之一,最为经典并且易用的聚类模型,要属K均值算法。该算法要求我们预先设定聚类...

2018-11-17 19:27:53 1373

转载 记录——python将一行的文本拆成多行

https://zhuanlan.zhihu.com/p/28337202非常有用,记录。

2018-10-29 17:23:08 3615

原创 Python机器学习及实践——基础篇12(集成模型)

在之前的集成模型(分类)中,探讨过集成模型的大致类型和优势。本篇除了继续使用普通随机森林和提升树模型的回归器版本外,还要补充介绍随机森林模型的另一个变种:极端随机森林。与普通的随机森林模型不同的是,极端随机森林在每当构建一棵树的分裂节点的时候,不会任意地选取特征;而是先随机收集一部分特征,然后利用信息熵和基尼不纯性等指标调休最佳的节点特征。本篇使用sklearn中三种集成回归模型,即Rando...

2018-10-20 16:59:55 290

原创 Python机器学习及实践——基础篇11(回归树)

回归树在选择不同特征作为分裂节点的策略上,与基础篇6的决策树的思路类似。不同之处在于,回归树叶节点的数据类型不是离散型,而是连续型。决策树每个叶节点依照训练数据表现的概率倾向决定了其最终的预测类;而回归树的叶节点确实一个个具体的值,从预测值连续这个意义上严格地讲,回归树不能成为“回归算法”。因为回归树的叶节点返回的是“一团”训练数据的均值,而不是具体的,连续的预测值。下面使用回归树对美国波士顿...

2018-10-20 11:07:00 777

原创 hive中多行合并一行concat_ws(去重及不去重)

原始数据:id  scoreaaa  1aaa  2aaa  3预期结果:id  scoreaaa 1,2,3可使用select id,concat_ws(',',collect_set(cast(colname as string))) from table;使用concat_ws函数,需将字段转成string格式,collect_set会对该...

2018-10-09 14:56:38 9322

原创 mac安装scala并配置intelliJ IDEA

这篇博客主要介绍mac安装scala并且配置intelliJ IDEA0、安装jdk安装完在终端输入java -version有输出表示安装成功。1、下载scalahttp://www.scala-lang.org/download/2、安装后配置环境变量(此处需在用户的目录下进行操作)vi .bash_profileexport SCALA_HOME=Scala的路径/...

2018-09-29 15:23:31 2835

原创 presto计算日期间隔天数或者小时间隔——date_diff函数使用

“Presto是Facebook最新研发的数据查询引擎,可对250PB以上的数据进行快速地交互式分析。据称该引擎的性能是 Hive 的 10 倍以上。”,亲身用过之后,觉得比hive快了10倍不止。hive中查询日期间隔的函数是datediff:select datediff('2018-09-07','2018-09-05');结果是2。presto中我们需要达到相同的目的,函...

2018-09-28 15:32:02 21874

原创 Hive 行转列LATERAL VIEW explode使用方法

原数据表a,每列都是由逗号分隔的字符串:bb_id1,2,31,12,3我们需要的是bb_id1231123使用LATERAL VIEW explode函数可进行行转列select bb_id2 from a LATERAL VIEW explode(split(bb_id),','))bbid as bb_id2; ...

2018-09-14 11:44:17 957

原创 hive查询时字段带有特殊符号解决办法

最近遇到的问题,由于hive字段是“$id”,在hive中运行时需要判断是否为空,使用反引号来做判断`$id` is null,没有问题。但是因为我要在shell里循环多个日期跑,使用hive -e "语句"时,却报错,最后排查是因为hive -e后面接双引号的话,会导致反引号失效,导致shell认为$id是参数。解决方式:需要用hive -e '语句'来执行,并且将语句中本来判断条件的单...

2018-08-10 17:29:12 8094 3

原创 Python机器学习及实践——基础篇10(K近邻回归)

    在基础篇5中提到里这类模型不需要训练参数的特点。在回归任务重,k近邻(回归)模型同样只是借助周围K个最近训练样本的目标数值,对待测样本的回归值进行决策。自然,也衍生出衡量待测样吧回归值的不同方式,即到底是对K个近邻目标数值使用普通的算术平均算法,还是同时考虑距离的差异进行加权平均。因此,本篇也初始化不同配置的K近邻(回归)模型来比较回归性能的差异。    下述代码展示了如何使用两种不同配置...

2018-06-23 20:48:02 879

原创 Python机器学习及实践——基础篇9(SVM回归)

    大家应该对基础篇3中的支持向量机(分类)中提到的分类模型的作用机理有所了解。本篇介绍的支持向量机(回归)也同样是从训练数据中选取一部分更加有效的支持向量,只是这少部分的训练样本所提供的并不是类别目标,而是具体的预测数值。    我们继续使用上一篇分割处理好的训练和测试数据;同时我们第一次修改模型初始化的默认配置,以展现不同配置下模型性能的差异,也为后面要介绍的内容做个铺垫。# 从sklea...

2018-06-23 20:28:24 5278

原创 Python机器学习及实践——基础篇8(LinerR和SGD)

    回归问题与分类问题的区别在于:期待预测的目标是连续变量,比如:价格、降水量等等。与前面的介绍方式不同,这里不会对回归的应用场景进行横向扩展;而是只针对一个“美国波士顿地区房价预测”的经典回归问题进行分析,好让读者朋友对各种回归模型的性能与优缺点有一个深入的比较。    前面介绍过分类的线性模型。其中为了便于将原本在实数域上的计算结果映射到(0,1)区间,引入了逻辑斯蒂函数。而在线性回归问题...

2018-03-28 20:25:35 1416 4

原创 Python机器学习及实践——基础篇7(分类集成模型)

    常言道:“一个篱笆三个桩,一个好汉三个帮”。集成分类模型便是综合考量多个分类器的预测结果,从而做出决策。只是这种“综合考量”的方式大体上分为两种:    一种是利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的分类决策。比较具有代表性的模型为随机森林分类器,即在相同训练数据上同时搭建多颗决策树。然而上一篇中提到过,一株标准的决策树会根据每维特征...

2018-03-25 21:05:36 1251

原创 Python机器学习及实践——基础篇6(决策树)

    前面所使用的逻辑斯蒂回归和支持向量机模型,都在某种程度上要求被学习的数据特征和目标之间遵照线性假设。然而,在许多现实场景下,这种假设是不存在的。    比如,要借由一个人的年龄来预测患流感的死亡率。如果采用线性模型假设,那只有两种情况:年龄越大死亡率越高;或者年龄越低死亡率越高。然而根据常识判断,青壮年因为更加健全的免疫系统,相较于儿童和老年人不容易因患流感而死亡。因此年龄与因流感而死之间...

2018-03-25 19:57:46 583

原创 python连接oracle报错CX_oracle解决方法

    使用的python2.7 64位,但公司的oracle client是32位,连接时报错。    解决方法:1.  下载合适的oracle客户端,也就是64位的客户端;2. 解压到上层一点的目录,例如C:\oracle\instantclient_12_2;3. 把目录加到环境变量path中,如果有多个oracle环境变量,把它加到最前面;4. (非必须)下载安装正确的Visual Stu...

2018-03-22 18:52:25 2740 3

原创 Python机器学习及实践——基础篇5(K近邻)

K近邻模型本身非常直观并且容易理解。算法描述起来也很简单,如下图所示。假设我们有一些携带分类标记的训练样本,分布于特征空间中;蓝色、绿色的样本各自代表其类别。对于一个待分类的红色测试样本点,未知其类别,按照成语“近朱者赤,近墨者黑”的说法,我们需要寻找与这个待分类的样本在特征空间中距离最近的K个已标记样本作为参考,来帮助我们做出分类决策。这便是K近邻算法的通俗解释。而在下图中,如果我们根据最近的K

2018-02-04 15:57:43 386

原创 Python机器学习及实践——基础篇4(朴素贝叶斯)

模型介绍:朴素贝叶斯是一个非常简单,但是实用性很强的分类模型。不过,和上述两个基于线性假设的模型(线性分类器和支持向量机分类器)不同,朴素贝叶斯分类器的构造基础是贝叶斯理论。 朴素贝叶斯分类器会单独考量每一维度特征被分类的条件概率,进而综合这些概率并对其所在的特征向量做出分类预测。因此,这个模型的基本数学假设是:各个维度上的特征被分类的条件概率之间是相互独立的。具体的贝叶斯公式网上有很多,这里

2018-02-04 14:00:14 483

原创 Python机器学习及实践——基础篇3(SVM)

图中有三种颜色的线,用来划分这两种类别的训练样本。其中绿色直线H1在这些训练样本上表现不佳,本身就带有分类错误;蓝色直线H2和红色直线H3如果作为这个二分类问题的线性分类模型,在训练集上的表现都是完美的。 然而,由于这些分类模型最终都是要应用在未知分布的测试数据上,因此我们更加关注如何最大限度地为未知分布的数据提供足够的待预测空间。比如如果有一个黑色样本稍稍向右偏离橙色直线,那么这个黑色样本很

2018-02-03 15:59:07 617

原创 Python机器学习及实践——基础篇2(LR和SGD)

使用线性分类模型从事良/恶性肿瘤预测任务# 从sklearn.preprocessing里导入StandardScaler。from sklearn.preprocessing import StandardScaler# 从sklearn.linear_model里导入LogisticRegression与SGDClassifier。from sklearn.linear_m...

2018-02-03 14:01:54 1868

原创 Python机器学习及实践——基础篇1

机器学习中监督学习模型的任务重点在于,根据已有经验知识对未知样本的目标/标记进行预测。根据目标预测变量的类型不同,我们把监督学习任务大体分为分类学习与回归预测两类。 整理一下监督学习任务的基本架构和流程:首先准备训练数据,可以是文本、图像、音频等;然后抽取所需要的特征,形成特征向量;接着,把这些特征向量连同对应的标记/目标一并送入学习算法中,训练出一个预测模型;然后采用同样的特征抽取方法作用于

2018-01-20 19:59:00 970

Mac 微软雅黑字体

wordcloud所需字体文件,供大家下载。

2018-11-28

scala安装包

最新scala安装包,

2018-09-30

算法导论中文版

算法导论中文版,第三版,有笔记,很详细,欢迎大家下载

2018-09-26

集体智慧编程searchindex.db

集体智慧编程第四章需要的searchindex.db

2016-04-18

waffles工具

Waffles 英文原意是蜂蜜甜饼,在这里却指代一个非常强大的机器学习的开源工具包。Waffles里包含的算法特别多,涉及机器学习的方方面面,推荐系统位于 其中的Waffles_recommend tool,大概只占整个Waffles的1/10的内容,其它还有分类、聚类、采样、降维、数据可视化、音频处理等许许多多工具包,估计能与之媲美的也就数Weka了。

2016-04-07

SVDFeature

最新的SVDFeature工具,里面还有我自己找的几篇manual。 一个feature-based协同过滤和排序工具,由上海交大Apex实验室开发,代码质量较高。在KDD Cup 2012中获得第一名,KDD Cup 2011中获得第三名,相关论文 发表在2012的JMLR中,这足以说明它的高大上。 SVDFeature 包含一个很灵活的Matrix Factorization推荐框架,能方便的实现SVD、SVD++等方法, 是单模型推荐算法中精度最高的一种。SVDFeature代码精炼,可以用 相对较少的内存实现较大规模的单机版矩阵分解运算。另外含有Logistic regression的model,可以很方便的用来进行ensemble。

2016-04-07

win32 简单计算器

利用vc++,基于win32的简单计算器,可以完成+-*/开方求余计算。

2015-03-05

Lenskit的留言板

发表于 2020-01-02 最后回复 2020-01-02

求这本书International Student Version 的International Student Version 9th

发表于 2014-10-16 最后回复 2016-04-17

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