决策树

Python机器学习笔记 集成学习总结

给你一囗甜甜゛ 提交于 2020-04-12 15:01:23
  集成学习(Ensemble learning)是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合,从而获得比单个学习器显著优越的泛化性能。它不是一种单独的机器学习算法啊,而更像是一种优化策略。因为单个机器学习模型所能解决的问题有限,泛化能力差,但是通过构建组合多个学习器来完成学习任务往往能够获得奇效,这些学习器可以看成一个个基本单元,由他们组合最终形成一个强大的整体,该整体可以解决更复杂的问题,其思想可以形象的概括为 三个臭皮匠赛过诸葛亮 。   集成学习是机器学习的一大分支,他通过建立几个模型组合来解决单一预测问题。他的工作原理是生成多个分类器模型,各个独立的学习和做出预测。这些预测最后结合成单预测,最后由任何一个单分类做出预测。   集成学习的一般结构是,先产生一组个体学习器,再用某种结合策略将他们结合起来。   集成学习是一种技术框架,其按照不同的思路来组合基础模型,从而达到其利断金的目的。目前,有三种常用的集成学习框架:bagging ,Boosting和stacking。国内南京大学的周志华教授对集成学习有很深的研究,其在09年发表的一篇概述性论文《Ensemble Learning》对这三种集成学习框架有了明确的定义,大家可以百度搜索这篇论文。 集成学习优势   1,个体学习器之间存在一定的差异性,这会导致分类边界不同,也就是说可能存在错误

监督学习方法

血红的双手。 提交于 2020-04-11 13:52:06
学习资料:《统计学习方法 第二版》、《机器学习实战》、吴恩达机器学习课程 一. 感知机Proceptron 感知机是根据输入实例的特征向量 \(x\) 对其进行二类分类的线性分类模型: \(f(x)=\operatorname{sign}(w \cdot x+b)\) ,感知机模型对应于输入空间(特征空间)中的分离超平面 \(w \cdot x+b=0\) 。 感知机学习的策略是极小化损失函数: \(\min _{w, b} L(w, b)=-\sum_{x_{i} \in M} ;y_{i}\left(w \cdot x_{i}+b\right)\) ; 损失函数对应于误分类点到分离超平面的总距离。 感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法。对于所有误分类的点,计算这些点到超平面的距离,目的是最小化这些点到平面的距离。 当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。 二. K近邻算法 K-近邻算法是一种 没有显示学习过程的算法 。数据集的可代表性就很重要! K-近邻原理:把数据集和输入实例点都映射到空间内,对给定的输入实例点,首先确定输入实例点的𝑘个最近邻训练实例点,这𝑘个训练实例点的类的多数就是预测的输入实例点的类。 K-近邻算法的 核心要素是K的值、距离度量(一般为欧式距离)、分类决策规则

监督学习方法

蓝咒 提交于 2020-04-11 12:49:33
学习资料:《统计学习方法 第二版》、《机器学习实战》、吴恩达机器学习课程 一. 感知机Proceptron 感知机是根据输入实例的特征向量 \(x\) 对其进行二类分类的线性分类模型: \(f(x)=\operatorname{sign}(w \cdot x+b)\) ,感知机模型对应于输入空间(特征空间)中的分离超平面 \(w \cdot x+b=0\) 。 感知机学习的策略是极小化损失函数: \(\min _{w, b} L(w, b)=-\sum_{x_{i} \in M} ;y_{i}\left(w \cdot x_{i}+b\right)\) ; 损失函数对应于误分类点到分离超平面的总距离。 感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法。对于所有误分类的点,计算这些点到超平面的距离,目的是最小化这些点到平面的距离。 当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。 二. K近邻算法 K-近邻算法是一种 没有显示学习过程的算法 。数据集的可代表性就很重要! K-近邻原理:把数据集和输入实例点都映射到空间内,对给定的输入实例点,首先确定输入实例点的𝑘个最近邻训练实例点,这𝑘个训练实例点的类的多数就是预测的输入实例点的类。 K-近邻算法的 核心要素是K的值、距离度量(一般为欧式距离)、分类决策规则

参考《机器学习实战》高清中文PDF+高清英文PDF+源代码

我的未来我决定 提交于 2020-04-11 07:52:22
机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。 入门建议参考《机器学习实战》,分为4个部分,分别是分类(有监督学习,包括KNN/决策树/朴素贝叶斯/逻辑斯蒂回归/svm/改变样本权重的bagging和adaboosting)、回归(有监督学习,线性回归、局部加权、特征维度比样本个数多时缩减系数,如岭回归、lasso等,树回归,这块掌握不太好)、无监督学习(kmeans、apriori/fp-growth)以及其他工具(PCA/SVD/MAPREDUCE)。 学习参考: 《机器学习实战》高清中文版, 339页,带目录书签,文字可复制;高清英文版, 382页,带目录书签,文字可复制; 中英文两版对比学习。讲解详细并配有源代码。 网盘下载: http://106.13.73.98 ![](https://img2018.cnblogs.com/other/1499715/201906/1499715-20190604164225573-1297509638.png) 来源: oschina 链接: https://my.oschina.net/u/4258425/blog/3228795

机器学习算法GBDT

烈酒焚心 提交于 2020-04-10 11:38:43
http://www-personal.umich.edu/~jizhu/jizhu/wuke/Friedman-AoS01.pdf https://www.cnblogs.com/bentuwuying/p/6667267.html https://www.cnblogs.com/ModifyRong/p/7744987.html https://www.cnblogs.com/bentuwuying/p/6264004.html 1.简介 gbdt全称梯度下降树,在传统机器学习算法里面是对真实分布拟合的最好的几种算法之一,在前几年深度学习还没有大行其道之前,gbdt在各种竞赛是大放异彩。原因大概有几个,一是效果确实挺不错。二是即可以用于分类也可以用于回归。三是可以筛选特征。这三点实在是太吸引人了,导致在面试的时候大家也非常喜欢问这个算法。 gbdt的面试考核点,大致有下面几个: gbdt 的算法的流程? gbdt 如何选择特征 ? gbdt 如何构建特征 ? gbdt 如何用于分类? gbdt 通过什么方式减少误差 ? gbdt的效果相比于传统的LR,SVM效果为什么好一些 ? gbdt 如何加速训练? gbdt的参数有哪些,如何调参 ? gbdt 实战当中遇到的一些问题 ? gbdt的优缺点 ? 2. 正式介绍 首先gbdt 是通过采用加法模型(即基函数的线性组合)

百度技术沙龙第68期 百度输入法在启动速度、智能手写、语音输入上所做的技术优化

冷暖自知 提交于 2020-04-10 01:53:43
本文作者:HelloDeveloper 11 月 26 日,由百度开发者中心和极客邦科技、InfoQ 联合举办的第 68 期百度技术沙龙邀请了百度输入法团队的研发工程师们,从三个方面解析百度输入法移动端输入技术,包括对 iOS 输入法启动速度和内存的优化措施;AI 在手写引擎中的应用,输入体验的提升;以及智能语音输入的技术核心,实现方式,优化细节等。 iOS 输入法启动速度优化 百度资深研发工程师 范敏虎先是介绍了百度输入法 iOS 版本是 2014 年苹果在 iOS8 上线开放 Extension 开发之后,上线到 AppStore 的,它的前身是百度输入法越狱版。由于 Extension 的特殊性,系统对 Extension 的运行做了很多限制,首先限制的就是速度,其次就是内存限制。表面上看输入法仅仅是一个面板,但是麻雀虽小五脏俱全,开发输入法甚至会面临比普通 app 更多的技术问题。 启动过程中,需要进行三个步骤,Extension 查找、Extension 启动、Host 与 Extension 交互。Host 通过 xpc 的方式请求 pkd,找到需要的 Extension;Host 通过 name 连接 Extension,xpc.launchd 启动 Extension;在交互过程中,Host 远程调用 Extension 的方法来展示键盘。由下图可见

教你用Python解决非平衡数据问题(附代码)

限于喜欢 提交于 2020-04-09 18:28:47
本文为你分享数据挖掘中常见的非平衡数据的处理,内容涉及到非平衡数据的解决方案和原理,以及如何使用Python这个强大的工具实现平衡的转换。 后台回复“不平衡”获取数据及代码~ 前言 好久没有更新自己写的文章了,相信很多读者都会比较失望,甚至取关了吧,在此向各位网友道个歉。文章未及时更新的主要原因是目前在写Python和R语言相关的书籍,激动的是基于Python的数据分析与挖掘的书已经编写完毕,后期还继续书写R语言相关的内容。希望得到网友的理解,为晚来的新文章再次表示抱歉。 本次分享的主题是关于数据挖掘中常见的非平衡数据的处理,内容涉及到非平衡数据的解决方案和原理,以及如何使用Python这个强大的工具实现平衡的转换。 SMOTE算法的介绍 在实际应用中,读者可能会碰到一种比较头疼的问题,那就是分类问题中类别型的因变量可能存在严重的偏倚,即类别之间的比例严重失调。如欺诈问题中,欺诈类观测在样本集中毕竟占少数;客户流失问题中,非忠实的客户往往也是占很少一部分;在某营销活动的响应问题中,真正参与活动的客户也同样只是少部分。 如果数据存在严重的不平衡,预测得出的结论往往也是有偏的,即分类结果会偏向于较多观测的类。对于这种问题该如何处理呢?最简单粗暴的办法就是构造1:1的数据,要么将多的那一类砍掉一部分(即欠采样),要么将少的那一类进行Bootstrap抽样(即过采样)。但这样做会存在问题

清华大学王奕森:Adversarial Machine Learning: Attack and D

六眼飞鱼酱① 提交于 2020-04-09 06:18:06
本文作者:HelloDeveloper 嗨,大家好。这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频——足够干货,足够新鲜!话不多说,快快看过来,希望这些优秀的青年学者、专家杰青的学术报告 ,能让您在业余时间的知识阅读更有价值。 人工智能论坛如今浩如烟海,有硬货、有干货的讲座却百里挑一。“AI未来说·青年学术论坛”系列讲座由中国科学院大学主办,百度全力支持,读芯术作为合作自媒体。承办单位为中国科学院大学学生会,协办单位为中国科学院计算所研究生会、网络中心研究生会、人工智能学院学生会、化学工程学院学生会、公共政策与管理学院学生会、微电子学院学生会。“AI未来说·青年学术论坛”第六期“机器学习”专场已于2019年6月23日下午在中科院举行。清华大学王奕森为大家带来报告《Adversarial MachineLearning: Attack and Defence》。 Yisen Wang obtained his Ph.D. degree from the Department of Computer Science and Technology at Tsinghua University. He is also a visiting scholar at Georgia Tech

scikit-learn Adaboost类库使用小结

≯℡__Kan透↙ 提交于 2020-04-09 01:03:06
    在 集成学习之Adaboost算法原理小结 中,我们对Adaboost的算法原理做了一个总结。这里我们就从实用的角度对scikit-learn中Adaboost类库的使用做一个小结,重点对调参的注意事项做一个总结。 1. Adaboost类库概述     scikit-learn中Adaboost类库比较直接,就是AdaBoostClassifier和AdaBoostRegressor两个,从名字就可以看出AdaBoostClassifier用于分类,AdaBoostRegressor用于回归。     AdaBoostClassifier使用了两种Adaboost分类算法的实现,SAMME和SAMME.R。而AdaBoostRegressor则使用了我们原理篇里讲到的Adaboost回归算法的实现,即Adaboost.R2。     当我们对Adaboost调参时,主要要对两部分内容进行调参,第一部分是对我们的Adaboost的框架进行调参, 第二部分是对我们选择的弱分类器进行调参。两者相辅相成。下面就对Adaboost的两个类:AdaBoostClassifier和AdaBoostRegressor从这两部分做一个介绍。 2. AdaBoostClassifier和AdaBoostRegressor框架参数    

Python大数据处理案例

假如想象 提交于 2020-04-06 19:25:29
分享 知识要点: lubridate包拆解时间 | POSIXlt 利用决策树分类,利用随机森林预测 利用对数进行fit,和exp函数还原 训练集来自Kaggle华盛顿自行车共享计划中的自行车租赁数据,分析共享自行车与天气、时间等关系。数据集共11个变量,10000多行数据。 https://www.kaggle.com/c/bike-sharing-demand 首先看一下官方给出的数据,一共两个表格,都是2011-2012年的数据,区别是Test文件是每个月的日期都是全的,但是没有注册用户和随意用户。而Train文件是每个月只有1-20天,但有两类用户的数量。 求解:补全Train文件里21-30号的用户数量。评价标准是预测与真实数量的比较。 1.png 首先加载文件和包 library(lubridate) library(randomForest) library(readr) setwd("E:") data<-read_csv("train.csv") head(data) 这里我就遇到坑了,用r语言缺省的read.csv死活读不出来正确的文件格式,换成xlsx更惨,所有时间都变成43045这样的怪数字。本来之前试过as.Date可以正确转换,但这次因为有时分秒,就只能用时间戳,但结果也不行。 最后是下载了"readr"包,用read_csv语句,顺利解读。