- 博客(137)
- 资源 (6)
- 问答 (2)
- 收藏
- 关注
原创 windows安装Graphviz
windows安装graphviz1、下载windows环境的graphviz安装包,下载exe文件后安装至本机,将安装目录下的bin目录配置到环境变量path中2、配置成功在cmd输入dot -version会出现版本信息,则为成功。3、在使用时如果出现以下报错:graphviz.backend.CalledProcessError: Command ‘[‘dot’, ‘-Tpng’, ‘-O’, ‘web_service’]’ returned non-zero exit status 1.
2020-12-20 16:42:24 1569
原创 mac安装xgboost方法(最简单方式)
百度上使用brew install llvm, brew install clang-omp,再pip install xgboost的方法,试了不行。还有要下载安装包,升级gcc 的方式,也没有安装成功。最后使用conda install py-xgboost命令,期间出现报错:RemoveError: 'requests' is a dependency of conda and cannot be removed from conda's operating environment.,使.
2020-11-03 16:38:56 1167 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 1019
原创 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 8692
原创 Spark入门
本篇是介绍Spark的入门系列文章,希望能帮你初窥Spark的大门。一、 Spark概述1 首先回答什么是Spark?Spark是一种基于内存的快速,通用,可扩展的大数据计算引擎。那有的同学可能会问,大数据计算引擎,MapReduce不就是吗?为什么又来个Spark?其中最大的原因还是MapReduce自身的短板导致:1. 基本运算规则从存储介质中采集数据,然后进行计算,最...
2019-11-02 16:03:35 565 1
原创 Python机器学习及实践——进阶篇6(超参数搜索)
前面所提到的模型配置,我们一般统称为模型的超参数,如K近邻算法中的K值 支持向量机中不同的和函数等。多数情况下,超参数的选择是无限的。因此在有限的时间内,除了可以验证人工预设几种超参数组合以外,也可以通过启发式的搜索方法对超参数组合进行调优。我们称这种启发式的超参数搜索方法为网格搜索。同时由于超参数的的验证过程之间彼此独立,因此为并行计算提供了可能。网格搜索:由于超参数的空间是无尽的,因此超...
2019-08-18 19:01:50 1416 2
原创 Python机器学习及实践——进阶篇5(模型检验)
前面时不时提到模型检验或者交叉验证等词汇,特别是在对不同模型的配置,不同的特征组合,在相同的数据和任务下进行评价的时候。究其原因是因为仅仅使用默认配置的模型与不经处理的数据特征,在大多数任务下是无法得到最佳性能表现的。因此在最终交由测试集进行性能评估之前,我们希望可以利用手头现有的数据对模型进行调优,甚至可以粗略地估计测试结果。这里需要强调的是,前面所使用的测试数据是由原始数据中采样而来,并且...
2019-08-18 18:59:02 1654
原创 Google OR-Tools简介
组合优化可以用来从很多可能解中寻找到问题的最佳解。比如下面这些例子:一、车辆路线:为在给定限制条件下提取和交付包裹的车队找到最佳路线(例如,“此卡车不能承载超过20000磅”或“所有交付必须在两小时内完成”)。二、调度:为一组复杂的任务找到最佳的调度,其中一些任务需要先于其他任务在一组固定的机器或其他资源上执行。三、装箱:尽可能多地将各种尺寸的物品装入存放固定数量以及有最大承重的箱...
2019-07-05 16:05:45 3440
原创 Python机器学习及实践——进阶篇4(模型正则化之L1正则&L2正则)
正则化的目的在于提高模型在未知测试数据上的泛化力,避免参数过拟合。由上一篇的例子可以看出,2次多项式回归是相对较好的模型假设。之所以出现如4次多项式那样的过拟合情景,是由于4次方项对于的系数过大,或者不为0导致。因此正则化的常见方法都是在原模型优化目标的基础上,增加对参数的惩罚项。以我们之前在线性回归器一节中介绍过的最小二乘优化目标为例,如果加入对模型的L1范数正则化,那么新的线性回归目标如下...
2019-05-26 18:06:31 1792
原创 Python机器学习及实践——进阶篇3(模型正则化之欠拟合与过拟合)
一个需要记住的重要事项:任何机器学习模型在训练集上的性能表现,都不能作为其对未知测试数据预测能力的评估。这里讲详细及时什么是模型的泛化力以及如何保证模型的泛化力,一次会阐述模型复杂度与泛化力的关系以及使用L1范数正则化与L2范数正则化加强模型的泛化力,避免模型参数过拟合。所谓拟合,是指机器学习模型在训练的过程中,通过更新参数,使得模型不断契合训练集的过程。本篇将使用一个“比萨饼价格预...
2019-05-26 11:13:39 1083
原创 Python机器学习及实践——进阶篇2(特征提升之特征筛选)
总体来说,良好的数据特征组合不需太多,便可以使得模型的性能表现突出。比如我们在“良/恶性乳腺癌肿瘤预测“问题中,仅仅使用两个描述肿瘤形态的特征便取得较高的识别率。冗余的特征虽然不会影响模型性能,但会浪费cpu的计算。主成分分析主要用于去除多余的那些线性相关的特征组合,这些冗余的特征组合并不会对模型训练有更多贡献。特征筛选与PCA这类通过选择主成分对特征进行重建的方法略有区别:对于PCA而言,我...
2019-05-26 10:46:47 2039
原创 Python机器学习及实践——进阶篇1(特征提升之特征抽取)
在前面的一系列文章中,已经介绍了大量经典的机器学习模型,并且使用python语言分析这些模型在许多不同现实数据上的性能表现。细心的读者会发现一个问题,我们之前使用的数据几乎都经过了规范化处理,而且模型也大多只是采用了默认的初始化配置。换言之,尽管我们使用经过处理后的数据,在默认配置下学得一套可以拟合数据的参数,并用这些参数和默认配置取得了一些看似良好的性能表现;但是我们无法解决最为关键的问题:实际...
2019-03-23 13:10:01 1195
原创 用TensorFlow来实现梯度下降
本篇我们尝试使用批量梯度下降。首先我们将通过手动计算梯度来实现,然后使用TensorFlow的自动扩展功能来使TensorFlow自动计算梯度,最后我们将使用几个TensorFlow的优化器。使用梯度下降时,首先要对输入特征向量进行归一化,否则训练会慢很多,可以使用TensorFlow,numpy,sklearn的standardscaler或其他解决方案,下面的代码会假定此规范化已经完成...
2019-03-19 20:22:55 744
原创 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 8180
原创 运行你的第一个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 2475
原创 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 3198
原创 hive中对带分号的字符串做split分割
直接对字段进行split(';')操作会报错,其原因是因为:分号默认是sql的结束字符,因此需要用分号的二进制\073来表示。如果此时对字段进行此操作是没有问题的,比如:-- column1里的字符串是以分号分割的select split(column1,'\073') from xxx但是如果是以字符串进行尝试还是会报错,比如:select split('aa;bb;cc'...
2019-02-26 14:39:55 7373
原创 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 3867
原创 presto列转行
原数据有一列数据为[1,2] , [0,2]这样,需要统计每种类别具体的占比,所以需要行转列。由于数据在hive中,建表人员为了导数方便将字段类型设置成了string,而presto的列转行函数只能处理Array格式,尝试了一波cast as array,均以失败告终。一怒之下直接用两次repalce和一次split得到了array,后面就好办了。presto列转行示例:select...
2019-01-17 10:16:06 6207
原创 Python机器学习及实践——特征降维
特征降维是无监督学习的另一个应用,目的有两个:一是我们经常在实际项目中遭遇特征维度非常高的训练样本,而往往无法借助自己的领域知识人工构建有效特征;二是在数据表现方面,我们无法用肉眼观测超过三个维度的特征。因此特征降维不仅重构了有效的低维度特征向量,同时也为数据展现提供了可能。PCA是最为经典和实用的特征降维技术,特别在辅助图形识别方面有突出的表现。本篇我们依然沿用上篇的“手写体数字图像”全集数...
2018-12-16 13:04:11 3216
原创 用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 10111 3
原创 代码测试通过,振奋人心的消息!
效果图:代码如下:print(""" ,@@@@@@@@@@,,@@@@@@@% .#&@@@&&.,@@@@@@@@@@, %@@@@@@%* ,@@@% .#&@@@&&. *&@@@@&( ,@@@@@@@% %@@@@@, ,@@, ...
2018-12-07 11:18:59 405
原创 Python机器学习及实践——无监督学习经典模型(K-means)
无监督学习着重于发现数据本身的分布特点。与监督学习不同,无监督学习不需要对数据进行标记。从功能角度讲,无监督学习模型可以帮助我们发现数据的“群落”,同时也可以寻找“离群”的样本;另外对于特征维度非常高的数据样本,我们同样可以通过无监督的学习对数据进行降维,保留最具有区分性的低纬度特征。数据聚类是无监督学习的主流应用之一,最为经典并且易用的聚类模型,要属K均值算法。该算法要求我们预先设定聚类...
2018-11-17 19:27:53 2875
原创 Python机器学习及实践——基础篇12(集成模型)
在之前的集成模型(分类)中,探讨过集成模型的大致类型和优势。本篇除了继续使用普通随机森林和提升树模型的回归器版本外,还要补充介绍随机森林模型的另一个变种:极端随机森林。与普通的随机森林模型不同的是,极端随机森林在每当构建一棵树的分裂节点的时候,不会任意地选取特征;而是先随机收集一部分特征,然后利用信息熵和基尼不纯性等指标调休最佳的节点特征。本篇使用sklearn中三种集成回归模型,即Rando...
2018-10-20 16:59:55 685
原创 Python机器学习及实践——基础篇11(回归树)
回归树在选择不同特征作为分裂节点的策略上,与基础篇6的决策树的思路类似。不同之处在于,回归树叶节点的数据类型不是离散型,而是连续型。决策树每个叶节点依照训练数据表现的概率倾向决定了其最终的预测类;而回归树的叶节点确实一个个具体的值,从预测值连续这个意义上严格地讲,回归树不能成为“回归算法”。因为回归树的叶节点返回的是“一团”训练数据的均值,而不是具体的,连续的预测值。下面使用回归树对美国波士顿...
2018-10-20 11:07:00 1422
原创 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 18146
原创 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 4806
原创 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 47596
原创 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 1426
原创 hive查询时字段带有特殊符号解决办法
最近遇到的问题,由于hive字段是“$id”,在hive中运行时需要判断是否为空,使用反引号来做判断`$id` is null,没有问题。但是因为我要在shell里循环多个日期跑,使用hive -e "语句"时,却报错,最后排查是因为hive -e后面接双引号的话,会导致反引号失效,导致shell认为$id是参数。解决方式:需要用hive -e '语句'来执行,并且将语句中本来判断条件的单...
2018-08-10 17:29:12 15048 5
原创 Python机器学习及实践——基础篇10(K近邻回归)
在基础篇5中提到里这类模型不需要训练参数的特点。在回归任务重,k近邻(回归)模型同样只是借助周围K个最近训练样本的目标数值,对待测样本的回归值进行决策。自然,也衍生出衡量待测样吧回归值的不同方式,即到底是对K个近邻目标数值使用普通的算术平均算法,还是同时考虑距离的差异进行加权平均。因此,本篇也初始化不同配置的K近邻(回归)模型来比较回归性能的差异。 下述代码展示了如何使用两种不同配置...
2018-06-23 20:48:02 1651
原创 Python机器学习及实践——基础篇9(SVM回归)
大家应该对基础篇3中的支持向量机(分类)中提到的分类模型的作用机理有所了解。本篇介绍的支持向量机(回归)也同样是从训练数据中选取一部分更加有效的支持向量,只是这少部分的训练样本所提供的并不是类别目标,而是具体的预测数值。 我们继续使用上一篇分割处理好的训练和测试数据;同时我们第一次修改模型初始化的默认配置,以展现不同配置下模型性能的差异,也为后面要介绍的内容做个铺垫。# 从sklea...
2018-06-23 20:28:24 11257 1
原创 Python机器学习及实践——基础篇8(LinerR和SGD)
回归问题与分类问题的区别在于:期待预测的目标是连续变量,比如:价格、降水量等等。与前面的介绍方式不同,这里不会对回归的应用场景进行横向扩展;而是只针对一个“美国波士顿地区房价预测”的经典回归问题进行分析,好让读者朋友对各种回归模型的性能与优缺点有一个深入的比较。 前面介绍过分类的线性模型。其中为了便于将原本在实数域上的计算结果映射到(0,1)区间,引入了逻辑斯蒂函数。而在线性回归问题...
2018-03-28 20:25:35 2172 4
原创 Python机器学习及实践——基础篇7(分类集成模型)
常言道:“一个篱笆三个桩,一个好汉三个帮”。集成分类模型便是综合考量多个分类器的预测结果,从而做出决策。只是这种“综合考量”的方式大体上分为两种: 一种是利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的分类决策。比较具有代表性的模型为随机森林分类器,即在相同训练数据上同时搭建多颗决策树。然而上一篇中提到过,一株标准的决策树会根据每维特征...
2018-03-25 21:05:36 2212
原创 Python机器学习及实践——基础篇6(决策树)
前面所使用的逻辑斯蒂回归和支持向量机模型,都在某种程度上要求被学习的数据特征和目标之间遵照线性假设。然而,在许多现实场景下,这种假设是不存在的。 比如,要借由一个人的年龄来预测患流感的死亡率。如果采用线性模型假设,那只有两种情况:年龄越大死亡率越高;或者年龄越低死亡率越高。然而根据常识判断,青壮年因为更加健全的免疫系统,相较于儿童和老年人不容易因患流感而死亡。因此年龄与因流感而死之间...
2018-03-25 19:57:46 907
原创 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 3998 3
原创 Python机器学习及实践——基础篇5(K近邻)
K近邻模型本身非常直观并且容易理解。算法描述起来也很简单,如下图所示。假设我们有一些携带分类标记的训练样本,分布于特征空间中;蓝色、绿色的样本各自代表其类别。对于一个待分类的红色测试样本点,未知其类别,按照成语“近朱者赤,近墨者黑”的说法,我们需要寻找与这个待分类的样本在特征空间中距离最近的K个已标记样本作为参考,来帮助我们做出分类决策。这便是K近邻算法的通俗解释。而在下图中,如果我们根据最近的K
2018-02-04 15:57:43 652
原创 Python机器学习及实践——基础篇4(朴素贝叶斯)
模型介绍:朴素贝叶斯是一个非常简单,但是实用性很强的分类模型。不过,和上述两个基于线性假设的模型(线性分类器和支持向量机分类器)不同,朴素贝叶斯分类器的构造基础是贝叶斯理论。 朴素贝叶斯分类器会单独考量每一维度特征被分类的条件概率,进而综合这些概率并对其所在的特征向量做出分类预测。因此,这个模型的基本数学假设是:各个维度上的特征被分类的条件概率之间是相互独立的。具体的贝叶斯公式网上有很多,这里
2018-02-04 14:00:14 753
原创 Python机器学习及实践——基础篇3(SVM)
图中有三种颜色的线,用来划分这两种类别的训练样本。其中绿色直线H1在这些训练样本上表现不佳,本身就带有分类错误;蓝色直线H2和红色直线H3如果作为这个二分类问题的线性分类模型,在训练集上的表现都是完美的。 然而,由于这些分类模型最终都是要应用在未知分布的测试数据上,因此我们更加关注如何最大限度地为未知分布的数据提供足够的待预测空间。比如如果有一个黑色样本稍稍向右偏离橙色直线,那么这个黑色样本很
2018-02-03 15:59:07 1126
waffles工具
2016-04-07
SVDFeature
2016-04-07
jieba分词的停用此表,为什么对英文不起作用?
2017-06-13
关于lenskit 跑的时候出了点问题
2016-01-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人