leaf

scikit-learn随机森林调参小结

非 Y 不嫁゛ 提交于 2020-04-15 09:49:11
【推荐阅读】微服务还能火多久?>>>     在 Bagging与随机森林算法原理小结 中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结。本文就从实践的角度对RF做一个总结。重点讲述scikit-learn中RF的调参注意事项,以及和GBDT调参的异同点。 1. scikit-learn随机森林类库概述     在scikit-learn中,RF的分类类是RandomForestClassifier,回归类是RandomForestRegressor。当然RF的变种Extra Trees也有, 分类类ExtraTreesClassifier,回归类ExtraTreesRegressor。由于RF和Extra Trees的区别较小,调参方法基本相同,本文只关注于RF的调参。     和GBDT的调参类似,RF需要调参的参数也包括两部分,第一部分是Bagging框架的参数,第二部分是CART决策树的参数。下面我们就对这些参数做一个介绍。 2. RF框架参数     首先我们关注于RF的Bagging框架的参数。这里可以和GBDT对比来学习。在 scikit-learn 梯度提升树(GBDT)调参小结 中我们对GBDT的框架参数做了介绍。GBDT的框架参数比较多,重要的有最大迭代器个数,步长和子采样比例,调参起来比较费力。但是RF则比较简单

文本分类模型第三弹:BoW(Bag of Words) + TF-IDF + LightGBM

青春壹個敷衍的年華 提交于 2020-04-15 09:35:52
【推荐阅读】微服务还能火多久?>>> 一、前言 本文是文本分类模型的第三弹,利用词袋模型(BoW),词频逆文档频率(TF-IDF)与 LightGBM 模型进行文本分类。 原本计划的第三弹内容为 TextCNN 网络,介于最近刚刚利用 LightGBM 完成了一个简单的文本分类的任务,就趁热记录一下,作为第三弹的内容。 这里是文本分类系列: 文本分类模型第一弹:关于Fasttext,看这一篇就够了 文本分类模型第二弹:HAN(Hierarchy Attention Network) 文本分类模型第三弹:BoW(Bag of Words) + TF-IDF + LightGBM 二、相关论文及理论 1.LightGBM 这里是 LightGBM 提出的论文《 LightGBM: A Highly Efficient Gradient Boosting Decision Tree 》,LightGBM 本质上也是 梯度提升树(GBDT)的优化模型,GBDT 的本质是回归树模型,在做分类任务时,通过“回归相应类别”的概率值,来曲线完成分类任务。LightGBM 与上一代 kaggle 神器 Xgboost 相比,由于采用了直方图算法(用于特征处理),和 Leaf-wise 的树分裂方法(用于模型构建),模型准确度更高,训练耗时更低。其不仅应用于传统的机器学习回归及二分类,多分类任务,在

一口气说出 9种 分布式ID生成方式,面试官有点懵了

孤者浪人 提交于 2020-04-15 07:36:30
【推荐阅读】微服务还能火多久?>>> 写在前边 前两天公众号有个粉丝给我留言吐槽最近面试:“四哥,年前我在公司受点委屈一冲动就裸辞了,然后现在疫情严重两个多月还没找到工作,接了几个视频面试也都没下文。好多面试官问完一个问题,紧接着说还会其他解决方法吗? 能干活解决bug不就行了吗?那还得会多少种方法? ” 面试官应该是对应聘者的回答不太满意,他想听到一个他认为最优的解决方案,其实这无可厚非。同样一个bug,能用一行代码解决问题的人和用十行代码解决问题的人,你会选哪个入职?显而易见的事情!所以看待问题还是要从多个角度出发,每种方法都有各自的利弊。 一、为什么要用分布式ID? 在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征? 1、什么是分布式ID? 拿MySQL数据库举个栗子: 在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。 但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有 唯一ID 做标识。此时一个能够生成 全局唯一ID 的系统是非常必要的。那么这个 全局唯一ID 就叫 分布式ID 。 2、那么分布式ID需要满足那些条件? 全局唯一

Dlib库landmark算法解析

懵懂的女人 提交于 2020-04-13 16:11:51
【今日推荐】:为什么一到面试就懵逼!>>> landmark是一种人脸部特征点提取的技术,Dlib库中为人脸68点标记,在《调用Dlib库进行人脸关键点标记》一文中有效果和标定点序号的示意图。今后可采用landmark中的点提取眼睛区域、嘴巴区域用于疲劳检测,提取鼻子等部分可用于3D姿态估计。 Dlib库使用《One Millisecond Face Alignment with an Ensemble of Regression Trees》CVPR2014中提及的算法:ERT(ensemble of regression trees)级联回归,即基于梯度提高学习的回归树方法。该算法使用级联回归因子,首先需要使用一系列标定好的人脸图片作为训练集,然后会生成一个模型。 the shape_predictor_trainer object to train a shape_predictor using a set of training images, each annotated with shapes you want to predict. To do this, the shape_predictor_trainer uses the state-of-the-art method. 使用基于特征选择的相关性方法把目标输出ri投影到一个随机方向w上,并且选择一对特征(u,v

树形dp

那年仲夏 提交于 2020-04-12 17:53:12
acwing 1072.树的最长路径 https://www.acwing.com/problem/content/1074/ 如何在一颗有边权的树上求树的直径?方法是:任取树上一点,求出距离该点距离的最大值和次大值,相加即是路径, 遍历所有点,求出最长的路径。 如何在一颗没有边权的树上求树的直径?方法是:任取树上的一个点$a$, 找到离该点最远的一个点$u$,那么 $u$一定是某一条直径的端点 ,从$u$开始找到离$u$最远的点$v$,那么$u-v$就是树的一条直径。将所有的直径取最大值,就是树的最长路径。( 本题的做法是在有边权的树上求树的直径 ) 核心在于为什么 $u$一定是某一条直径的端点。 证明: (1)当$au$和$bc$不相交时:假设$a$为树上的任意一点,$u$为离$a$最远的一点并且$u$不是某一直径的端点,$bc$为树上的一条直径。因为是一颗树,所以是连通的,所以$au$和$bc$中间有两个点相连。因为$u$是离$a$最远的一个点,所以①>=②+③,所以①+②>=③,所以存在一一条路径$bu$比当前的直径$bc$更长,矛盾。所以$u$一定是某一直径的端点。 (2)当$au$和$bc$相交时:因为$u$是离$a$最远的一点,所以④>=③,那么①+④>=①+③, 与$bc$是直径矛盾,所以$u$一定是某一直径的端点。 1 #include <iostream> 2

如何在i.MX6UL平台上实现硬浮点与软浮点?

天涯浪子 提交于 2020-04-12 09:41:35
i.MX 6UltraLite(简称为i.MX 6UL)是i.MX6系列的新产品。i.MX 6UltraLite采用单核ARM Cortex-A7,处理器主频528MHz,采用NEON技术加速多媒体和信号处理算法,具有浮点运算单元。适合于物联网,电子支付,智能家居,能源管理等领域。 如何在i.MX6UL平台上实现硬浮点与软浮点? 本次开发使用的硬件平台为飞凌嵌入式OKMX6UL-C开发板(产品详情:www.forlinx.com/69.htm),其它板卡请酌情参考使用,具体实现操作步骤如下: 硬浮点交叉编译方法为 arm-linux-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -o test test.c 加入编译参数 -mfloat-abi=hard,并且使用arm-linux-readelf -A test查看,如下: Attribute Section: aeabi File Attributes Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3 Tag_Advanced_SIMD_arch:

Code:Tree

China☆狼群 提交于 2020-04-11 11:30:13
ylbtech-Code:Tree 1. 返回顶部 1、 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Core.WebHelper { public class Tree { public List<TreeNode> TreeNodes { get ; set ; } public string SelectPath { get ; set ; } // 选中路径 bool _ShowLine = true ; public bool ShowLine { get { return _ShowLine; } set { _ShowLine = value; } } ShowCheckBoxs _ShowCheckBox = ShowCheckBoxs.None; public ShowCheckBoxs ShowCheckBox { get { return _ShowCheckBox; } set { _ShowCheckBox = value; } } int _ExpentDepth= 0 ; public int ExpentDepth { get { return _ExpentDepth; } set {

《Python数据分析与机器学习实战-唐宇迪》读书笔记第9章--随机森林项目实战——气温预测(2/2)

岁酱吖の 提交于 2020-04-10 15:13:09
python数据分析个人学习读书笔记-目录索引 第9章--随机森林项目实战——气温预测(2/2)   第8章已经讲解过随机森林的基本原理,本章将从实战的角度出发,借助Python工具包完成气温预测任务,其中涉及多个模块,主要包含随机森林建模、特征选择、效率对比、参数调优等。这个例子实在太长了,分为3篇介绍。这是第2篇。 9.2数据与特征对结果影响分析   带着上节提出的问题,重新读取规模更大的数据,任务还是保持不变,需要分别观察数据量和特征的选择对结果的影响。 1 # 导入工具包 2 import pandas as pd 3 4 # 读取数据 5 features = pd.read_csv( ' data/temps_extended.csv ' ) 6 features.head(5 ) 7 8 print( ' 数据规模 ',features.shape)   数据规模 (2191, 12)   在新的数据中,数据规模发生了变化,数据量扩充到2191条,并且加入了以下3个新的天气特征。 ws_1:前一天的风速。 prcp_1:前一天的降水。 snwd_1:前一天的积雪深度。   既然有了新的特征,就可绘图进行可视化展示。 1 # 设置整体布局 2 fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2,

阿里云轻量应用服务器Linux-Centos7下Oracle19c的安装

半城伤御伤魂 提交于 2020-04-09 14:25:12
初始环境:阿里云轻量应用服务器已经重置系统为CentOS7.3-64位 具体目标:安装Oracle Database 19c 第一步:检查Linux系统版本 执行命令 lsb_release -a 查看系统版本 可以看到,目前我的系统版本为CentOS7.3-64位。 2.为了确保一切正常,我准备升级自己的系统到当前最新。 3.用yum更新升级 执行命令 yum -y clean all 执行命令 yum -y update 最后看见“Complete!”就是更新完成了。 4.更新完成后,执行命令 lsb_release -a 查看系统版本 可以看到,现在我的系统版本为CentOS7.7-64位。 第二步:下载Oracle19c的安装包 1.就是下载 oracle-database-ee-19c-1.0-1.x86_64.rpm 这个文件。 2.由于Oracle官网下载较慢,于是提供了下方的百度网盘链接。 链接: https://pan.baidu.com/s/1QDDFUGPu39kh7ObmHQTF2g 提取码: leaf 3.感兴趣的小伙伴也可以在Oracle官网进行下载,切记下载之前需注册登录Oracle账号。 https://www.oracle.com/database/technologies/oracle-database-software-downloads

个性化排序算法实践(四)——GBDT+LR

折月煮酒 提交于 2020-04-09 05:10:45
本质上GBDT+LR是一种具有 stacking 思想的二分类器模型,所以可以用来解决二分类问题。这个方法出自于Facebook 2014年的论文 Practical Lessons from Predicting Clicks on Ads at Facebook 。 GBDT+LR 使用最广泛的场景是CTR点击率预估,即预测当给用户推送的广告会不会被用户点击。 点击率预估模型涉及的训练样本一般是上亿级别,样本量大,模型常采用速度较快的LR。但LR是线性模型,学习能力有限,此时特征工程尤其重要。现有的特征工程实验,主要集中在寻找到有区分度的特征、特征组合,折腾一圈未必会带来效果提升。GBDT算法的特点正好可以用来发掘有区分度的特征、特征组合,减少特征工程中人力成本。 思想 GBDT+LR 由两部分组成,其中GBDT用来对训练集提取特征作为新的训练输入数据,LR作为新训练输入数据的分类器。 GBDT首先对原始训练数据做训练,得到一个二分类器,当然这里也需要利用网格搜索寻找最佳参数组合。 与通常做法不同的是,当GBDT训练好做预测的时候,输出的并不是最终的二分类概率值,而是要把模型中的每棵树计算得到的预测概率值所属的叶子结点位置记为1,这样,就构造出了新的训练数据。 设GBDT有两个弱分类器,分别以蓝色和红色部分表示,其中蓝色弱分类器叶子结点个数为3,红色弱分类器叶子结点个数为2