5 Lenskit

尚未进行身份认证

逆水行舟,不进则退。

等级
TA的排名 1w+

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

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

2019-08-18 19:01:50

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

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

2019-08-18 18:59:02

Google OR-Tools简介

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

2019-07-05 16:05:45

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

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

2019-05-26 18:06:31

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

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

2019-05-26 11:13:39

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

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

2019-05-26 10:46:47

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

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

2019-03-23 13:10:01

用TensorFlow来实现梯度下降

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

2019-03-19 20:22:55

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

运行你的第一个TensorFlow程序

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

2019-03-06 10:47:24

python使用graphviz工具画图

本示例数据集为鸢尾花数据集,运行后会生成两个文件,一个是iris,一个是iris.pdf。fromsklearn.datasetsimportload_irisfromsklearn.treeimportDecisionTreeClassifierfromsklearn.treeimportexport_graphvizimportgraphviziris=...

2019-02-28 16:56:03

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

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

2019-02-26 14:39:55

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

InsertoverwriteLOCALdirectory'file:///xx/xx/xxx'ROWformatdelimitedfieldsterminatedBY"\t"上面是hive中将查询语句的结果插入到文件夹的方法。presto的方法如下:presto--serverip:port--cataloghive--schemadefault...

2019-01-28 13:29:58

presto列转行

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

2019-01-17 10:16:06

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

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

2018-12-16 13:04:11

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

安装pyhive,连接presto并用pandas读取:​importpandasaspdfromsqlalchemy.engineimportcreate_enginefrompyhiveimporthive#准备语句sql="select*fromtable"engine1=create_engine('presto://ip:port/...

2018-12-12 15:51:39

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

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

2018-12-07 11:18:59

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

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

2018-11-17 19:27:53

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

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

2018-10-29 17:23:08

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

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

2018-10-20 16:59:55

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取