- 博客(235)
- 资源 (5)
- 收藏
- 关注
原创 机器学习中的数据集划分问题
留出法(hold-out)使用 n:m and n + m =1 的形式对原数据进行分割,例如 train : test = 7 : 3 or train : test = 6.5 : 3.5 但是这种相对原始的处理方式效果并不好,缺点如下: 缺点一:浪费数据缺点二:容易过拟合,且矫正方式不方便这时,我们需要使用另外一种分割方式-交叉验证 或者 留P法(leave P out)
2018-01-31 17:07:55 8219
原创 Gradient Tree Boosting:梯度提升树详解
理论数学推导请参考《统计机器学习》-李航,或者参考sklearn的官方文档,下面是我的部分笔记,也可以作为参考优缺点GBRT是对任意的可微损失函数的提升算法的泛化,即可回归亦可分(sai)类(ting)。 优点: 1. 对混合数据的的天然处理能力 2. 强大的预测能力(主要指算法本身的能力强大,一般性能好) 3. 在输出空间中对异常点的鲁棒性(通过具有鲁棒性的
2018-01-26 22:02:09 11260
原创 集成算法中的Bagging
Bagging(Tree)相较于Tree增加了偏差,但是降低了方差,最终得到了优于Tree的模型,而同样的Bagging(Tree)_2进一步大幅度增加了偏差,但是同样的方差也大幅度下降,最终得到了效果优于Bagging(Tree)的最终模型。虽然在Bagging中引入的随机分割增加了偏差,但是因为多个模型的集成平均,同时也使得我们在总体上获取了更好的模型,在本篇文章中,我们称之为Bagging的特性一,在后面我们将会验证这一特性。
2018-01-16 14:16:10 19983 1
原创 RandomForest:随机森林
随机森林:RF随机森林是一种一决策树为基学习器的Bagging算法,但是不同之处在于RF决策树的训练过程中还加入了随机属性选择(特征上的子采样)传统的决策树在选择划分的属性时,会选择最优属性RF 首先,从该节点的属性中损及选择出K个属性组成一个随机子集(类也就是Bagging中的Random Subspaces,一般通常K=log2(n))然后再从这个子集中选择一个最右子集进行划分
2018-01-16 14:07:02 6186 2
原创 通过模型进行特征选择
第一种是基于L1的特征选择,使用L1正则化的线性模型会得到稀疏解,当目标是降低维度的时候,可以使用sklearn中的给予L1正则化的线性模型,比如LinearSVC,逻辑回归,或者Lasso。使用 Lasso,alpha 的值越大,越少的特征会被选择。特征选取并不一定升:所有特征有效的情况下,去除的特征只能带来模型性能的下降,即使不是全部有效很多时候,低重要程度的特征也并不一定代表着一定会导致模型性能的下降,因为某种度量方式并不代表着该特征的最终效果,很多时候我们的度量方式,往往只是一个参考而已.
2018-01-15 15:17:55 15285 7
原创 Hyperopt TypeError: 'generator' object is not subscriptable
BUG最近复用以前的代码,结果发现了一个bug,bug如下: File "/home/michael/work/oanda/src/oanda/trend_prediction/find_optimal_model.py", line 124, in <module> main() File "/home/michael/work/oand...
2018-01-09 14:34:16 3420 6
原创 递归式特征消除:Recursive feature elimination
简述特征的选取方式一共有三种,在sklearn实现了的包裹式(wrapper)特诊选取只有两个递归式特征消除的方法,如下:recursive feature elimination ( RFE )通过学习器返回的 coef_ 属性 或者 feature_importances_ 属性来获得每个特征的重要程度。 然后,从当前的特征集合中移除最不重要的特征。在特征集合上不断的重复递归这个步骤
2018-01-08 16:57:31 35545 46
原创 单变量特征选择:Univariate feature selection
sklearn中的单变量特征选择单变量的特征选择是通过基于一些单变量的统计度量方法来选择最好的特征,比如卡方检测等。Scikit-learn 将单变量特征选择的学习器作为实现了 transform方法的对象:sklearn中实现的方法有:SelectKBest 保留评分最高的 K 个特征SelectPercentile 保留最高得分百分比之几的特征对每个特征应用常见的单变量统计测
2018-01-07 20:56:44 8624
原创 方差过滤: Removing features with low variance
方差特征选择的原理与使用VarianceThreshold 是特征选择的一个简单基本方法,其原理在于–底方差的特征的预测效果往往不好。而VarianceThreshold会移除所有那些方差不满足一些阈值的特征。默认情况下,它将会移除所有的零方差特征,即那些在所有的样本上的取值均不变的特征。例如,假设我们有一个特征是布尔值的数据集,我们想要移除那些在整个数据集中特征值为0或者为1的比例超过8
2018-01-07 20:54:18 5372 2
翻译 hyperopt中文文档:Scipy2013
Scipy2013Font Tian translated this article on 23 December 2017SciPy2013摘要提交标题Hyperopt:用于优化机器学习算法的超参数的Python库作者詹姆斯·伯格斯特拉,丹·维明斯和戴维·C·考克斯(James Bergstra, Dan Yamins, and David D. Cox)简介James Bergstra是滑铁卢大
2017-12-23 18:25:25 1651
翻译 hyperopt中文文档:RelatedWork
相关工作Font Tian translated this article on 23 December 2017与Hyperopt相关的软件链接,以及常用的贝叶斯优化工具。使用Hyperopt的软件 hyperopt-sklearn - 使用hyperopt跨Sklearn估计器进行优化(Work In Progress)。hyperopt-convnet - 优化用于图像分类的卷积体系结构(
2017-12-23 18:24:01 1434
翻译 hyperopt中文文档:Recipes
食谱(Recipes)Font Tian translated this article on 23 December 2017如何对一些给定值的配置空间内的一些值进行采样ampling%2520in%2520hyperopt.ipynb)
2017-12-23 18:22:59 1247
翻译 hyperopt中文文档:Parallelizing-Evaluations-During-Search-via-MongoDB
通过MongoDB在搜索时进行并行计算Font Tian translated this article on 23 December 2017 Hyperopt旨在支持不同类型的试用数据库。默认试用数据库(Trials)是用Python列表和字典实现的。默认实现是一个参考实现,很容易处理,但不支持并行评估试验所需的异步更新。对于并行搜索,hyperopt包含一个 MongoTrials 支持异步
2017-12-23 18:21:58 1815 2
翻译 hyperopt中文文档:Interfacing-With-Other-Languages(在其他语言中使用hyperopt)
其他语言接口Font Tian translated this article on 23 December 2017两种接口策略基本上有两种方法将 hyperopt 与其他语言进行连接:你可以为你的成本函数中编写一个Python包装器,这个函数不是用Python编写的(用Python调用其它语言,译者注)您可以将 hyperopt-mongo-worker 替换为直接使用JSON与MongoD
2017-12-23 18:20:42 1050
翻译 hyperopt中文文档:Installation-Notes安装说明
安装说明hyperopt安装说明 Font Tian translated this article on 23 December 2017有关MongoDB的部分Hyperopt要求mongodb(有时候简称“mongo”)来执行并行搜索。据我所知,hyperopt与2.xx系列中的所有版本兼容,这是目前的(在这里下载最新版本)。它甚至可能与mongodb的所有版本兼容,我不知道mongo的任何
2017-12-23 18:19:48 2727
翻译 Hyperopt中文文档:FMin
FMinFont Tian translated this article on 22 December 2017这一页是关于 hyperopt.fmin() 的基础教程. 主要写了如何写一个可以利用fmin进行优化的函数,以及如何描述fmin的搜索空间。Hyperopt的工作是通过一组可能的参数找到标量值,possibly-stochastic function的最佳值(注意在数学中stocha
2017-12-23 18:18:44 12346 8
翻译 Hyperopt中文文档:Cite引用
引用Font Tian translated this article on 22 December 2017如果你想使用这个软件进行研究,请在论文中引用以下内容:Bergstra, J., Yamins, D., Cox, D. D. (2013) Making a Science of Model Search: Hyperparameter Optimization in Hundreds o
2017-12-23 18:17:22 927
翻译 Hyperopt中文文档:Home
主页Font Tian translated this article on 22 December 2017Hyperopt:分布式异步算法组态/超参数优化(主页,但这不是维基的主页)。加入hyperopt-announce 来获取重要更新的电子邮件通知(花费较低的流量)。文档:安装注意事项-主要是MongoDBFmin - 有关如何使用HyperOpt最小化功能的基本教程使用MongoDB
2017-12-23 18:16:00 2684
原创 Hyperopt官方中文文档导读
在2017年的圣诞节前,我翻译了有关HyperOpt的中文文档,这也时填补了空白,以此作为献给所有中国程序员,以及所有其他机器学习相关行业人员的圣诞礼物。圣诞快乐,各位。HyperOpt中文文档导读翻译的文档已经发布于github,请在我的项目Hyperopt_CN中的wiki查看相应文档.HyperOpt中文版wiki文档内容包括以下内容:HyperOpt中文文档导读,即真正的中文文档主页Ho
2017-12-23 15:56:30 6622
原创 AdaBoost算法特性
Boosting算法提升算法是一种常见的统计学习方法,其作用为将弱的学习算法提升为强学习算法.其理论基础为:强可学习器与弱可学习器是等价的.即在在学习中发现了’弱学习算法’,则可以通过某些方法将它特生为强可学习器,这是数学可证明的.在分类学习中提升算法通过反复修改训练数据的权值分布,构建一系列的基本分类器(弱分类器),并将这些基本分类器线性组合,构成一个强学习器.代表算法为Adaboost算法,ad
2017-12-18 16:55:06 3957
原创 sklearn中的回归决策树
sklearn中DecisionTreeRegressor的主要参数与分类决策树差异不大.唯一不太一样的是,在回归决策树中只实现了优化的gini决策树,而无法使用基于信息熵的决策树关于超参数的介绍,我们可以直接借用在分类决策树中的介绍在sklearn中我们可以用来提高决策树泛化能力的超参数主要有max_depth:树的最大深度,也就是说当树的深度到达max_depth的时候无论还有多少可以分支的特征,决策树都会停止运算.
2017-12-17 14:14:12 17686 2
原创 sklearn中的朴素贝叶斯算法
sklearn中的朴素贝叶斯分类器之前理解朴素贝叶斯中的结尾对sklearn中的朴素贝叶斯进行了简单的介绍. 此处对sklearn中的则对sklearn中的朴素贝叶斯算法进行比较详细介绍.不过手下还是对朴素贝叶斯本身进行一些补充.朴素贝叶斯算法朴素贝叶斯算法的数学基础都是围绕贝叶斯定理展开的,因此这一类算法都被称为朴素贝叶斯算法.朴素贝叶斯的分类原理是通过对象的先验概率,利用贝叶斯公式计算出后验概
2017-12-17 13:03:32 6354 15
原创 绘制决策树
绘制出决策树经过训练的决策树,我们可以使用 export_graphviz 导出器以 Graphviz 格式导出决策树. 如果你是用 conda 来管理包,那么安装 graphviz 二进制文件和 python 包可以用以下指令安装 conda install python-graphviz 或者,可以从 graphviz 项目主页下载 graphviz 的二进制文件,并从 pypi 安装 Py
2017-12-17 12:04:01 4301
原创 sklearn中的分类决策树
决策树决策树简介决策树是一种使用if-then-else的决策规则的监督学习方法.其三要素为,枝节点,叶节点与分支条件,同时为了减少过拟合还有剪枝方法 为了便于记忆,可以称其为一方法三要素决策树的优势便于理解和解释。树的结构可以可视化出来。训练需要的数据少。其他机器学习模型通常需要数据规范化,比如构建虚拟变量和移除缺失值,不过请注意,这种模型不支持缺失值。由于训练决策树的数据点的数量导致了决
2017-12-17 11:55:17 7969 4
原创 auto-sklearn案例解析二
度量函数-metricsauto-sklearn的度量函数是对sklearn度量函数的封装,我们即可以使用autosklearn已经封装好的metrics函数,也可以使用autosklearn的metrics函数封装器make_scorer函数封装我们自己的么metrics函数使用autosklearn已经封装好的metrics函数如果仅仅是获取的话,最简易的一种方式是直接去找源代码.你可以直接输入
2017-12-12 19:54:47 2120 1
原创 auto-sklearn案例解析一
简单的使用 >>> import autosklearn.classification >>> cls = autosklearn.classification.AutoSklearnClassifier() >>> cls.fit(X_train, y_train) >>> predictions = cls.predict(X_test)该例子来自于官网首页.
2017-12-12 19:50:32 5245
翻译 auto-sklearn简介
auto-sklearn是什么?auto-sklearn是一个自动化机器学习的工具包,其基于sklearn编写. >>> import autosklearn.classification >>> cls = autosklearn.classification.AutoSklearnClassifier() >>> cls.fit(X_train, y_train)
2017-12-12 19:47:05 7136
翻译 auto-sklearn手册
手册本手册从几个方面说明了如何使用auto-sklearn。并且 尽可能引用的例子来解释某些配置。官网首页.官网中文翻译例子auto-sklearn 下面的例子演示几个 方面的用法,他们都位于github:Holdout交叉验证并行计算按照时序使用回归连续和分类数据使用自定义指标时间和内存限制auto-sklearn 的一个重要功能时限制内存与时间的使用。特别是对于大型数据集,算法可
2017-12-12 19:44:53 10432 2
原创 理解朴素贝叶斯
前言在对我的数据科学与人工智能小组的新人进行小规模授课时讲课内容整理,有改动和删减.这可能是目前网络上最全面也最简单易懂的有关朴素贝叶斯的文章有关贝叶斯的一些闲谈无论是在生活中还是我们的科学理论中,经常会估计概率.比如,我们计算一下明天下雨的概率,或者中彩票的概率,或者其他概率.概率就是可能性. 但是在人工智能领域关于概率的问题却产生了两个不同的流派,那就是贝叶斯派和频率学派.频率学派认为万物发展
2017-12-08 14:41:12 2104 3
原创 机器学习数据集
前言数据集算是比较重要的学习资料了吧,在这里汇总一些好用的数据集以便使用, 关于一些内容可以参考一下知乎的提问UCI常用数据集UCI 一个不错的数据集下载网站 此处介绍几个点击;想比较高的数据集,后面有下载和存储的代码以及有关问题的说明.使用方式点击官方网站,你可以看到以下内容 可以看到右边有两个排行榜,最右边的是历史点击率的排行榜,位于该榜左边的也就是网页中间的是最新捐赠
2017-12-08 09:26:53 10945
转载 Python中单线程、多线程与多进程的效率对比实验
Python是运行在解释器中的语言,查找资料知道,python中有一个全局锁(GIL),在使用多进程(Thread)的情况下,不能发挥多核的优势。而使用多进程(Multiprocess),则可以发挥多核的优势真正地提高效率。对比实验资料显示,如果多线程的进程是CPU密集型的,那多线程并不能有多少效率上的提升,相反还可能会因为线程的频繁切换,导致效率下降,推荐使用多进程;如果是IO密
2017-12-05 22:11:21 1420
原创 Google提出的新型激活函数:Swish
简介Swish是Google在10月16号提出的一种新型激活函数,其原始公式为:f(x)=x * sigmod(x),变形Swish-B激活函数的公式则为f(x)=x * sigmod(b * x),其拥有不饱和,光滑,非单调性的特征,而Google在论文中的多项测试表明Swish以及Swish-B激活函数的性能即佳,在不同的数据集上都表现出了要优于当前最佳激活函数的性能.论文地址:htt...
2017-11-26 11:35:15 12669 2
原创 Rosonblatt线性感知器
前叙读前简介机器学习的流派很多,现在比较流行的便是联结学派,其计算的重点在于权重更新,而其它学派比如贝叶斯学派,基于统计学,进化学派则注重结构学习.本篇博客以线性感知器为基础,将会对神经网络与一些机器学习算法进行介绍,如果你只想简单的了解,那么可以浏览一遍即可,当然你也可以花费些时间读这篇文章,那么你也可以受益许多.神经网络与联结学派神经网络就是联结学派的”
2017-11-17 12:02:18 885
原创 Python基础检测:20171105
第一周的预习结束了效果并不理想,最后的检测也是有个别同学表现还可以.最后一次检测,除了依旧不是放在一个文件里,文件也没有标注作者从而导致我没办法一一回复外,有些问题写的不好意外.基本没什么毛病,摔!答案与解析第一题,公式转换,计算误差# 1. 门前有两棵树,其中一棵是枣树,我每天早上起来都会吃掉原三分之一又一个枣,一个星期刚好吃完,请问我一共吃了几个枣? (循环)def question_1(n=7
2017-11-05 18:55:11 679
原创 Python中斐波那契数列的四种写法
在这些时候,我可以附和着笑,项目经理是决不责备的。而且项目经理见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向新人说话。有一回对我说道,“你学过数据结构吗?”我略略点一点头。他说,“学过数据结构,……我便考你一考。斐波那契数列用Python怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做项目经理的时候,写账要用。”我暗想我和项目经理的等级还很远呢,而且我们项目里也用不到斐波那契数
2017-11-02 21:47:22 54258 16
原创 学习Python3:20171031
简介本次作业继承于上一次的交互问题(用户屏幕输入输出),额外内容为文件在硬盘上的读取与存储.是为了之后的简易版本的自然语言处理任务做铺垫.题目"""本次的问题很简单,文件读取,与,简单的人机交互,以及异常处理答题程序特殊要求,问题一共十个,问题和回答都需要存储到硬盘中(最起码保留一次),并可以计算分数.提示:open操作 + 自定义解析器,或者使用numpy,或者pandas的保存功能.交卷时间:
2017-11-01 17:09:55 813
原创 9.3 Trains and Evaluates the MNIST network using a feed dictionary
简介这部分代码来自tensorflow的源码,代码中的注释相当的详细,假如对于9.2 你已经比较详细,那么我建议您运行这份源码示例.他会给你很好的帮助. 这份代码主要展示了projector模块(当然你也可以结合9.2 进行扩展),其中的T-SNE以及PCA都是官方提供的可视化方案,很有意思.关键点argparse : python的一个类库python中的argparse模块fill_fee
2017-10-31 11:15:53 626
原创 学习Python3:201701030
第一步首先是开发环境的搭建参考:anconda 参考:类库问题IDE:pycharm,去官网下载即可,内容前两篇也有提到学习目标与计划第一周的计划是自学python,之后周一到周五每天都有作业.第一天的作业主要是考考基本流程语句,以大一学弟学妹的水平,应该能在限时内做完,但是实现方式会比较差,我给出的答案基本是启发性的,我带的七个人都是我亲自面试的,悟性还可以,我预估的主要问题是他们能不能开窍.具
2017-10-31 11:00:04 540
原创 9.2 mnist_with_summaries tensorboard 可视化展示
tensorboard tensorflow中的可视化组件在新版本的tensorflow 中tensorboard已经被整合,无需下载.其执行是利用了一个封装的内置服务器,性能不错. 我们可以将神经网络运行时的各类数据存储下来进行可视化展示,我首先展示其功能,然后再分解代码.本处例子源自tensorflow的官方源码,如果你需要了解更多,建议直接阅读官方文档展示最重要的网络结构的展示基本数据的展示
2017-10-23 22:25:24 1275
原创 2.1 name_scope 简单入门(一)
name_scope 等内容主要是用来可视化的,tensoeboardimport tensorflow as tfimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'with tf.variable_scope('foo'): with tf.name_scope('bar'): v = tf.get_variable('v'
2017-10-23 21:38:54 1062
wps for linux 2017版本
2017-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人