迭代计算

机器学习:集成学习

限于喜欢 提交于 2019-12-02 05:29:58
集成学习 基本概念 集成学习(Ensemble Learning)的 思想 是将若干个学习器(分类|回归)组合之后产生一个新的学习器, 如何产生“好而不同”的个体学习器,是集成学习研究的核心 ; 一般性用于集成的学习器都为 弱学习器 ,即学习器的预测精度不需要太高但是应该好于随机预测的结果; 集成学习 算法的成功 在于保证了弱分类器的多样性(Diversity),即学习器之间具有 差异性 弱分类器间存在一定的差异性,会导致分类的边界不同,即会存在错误;但当多个弱分类器合并后,就可以得到更加合理的边界,能减少错误率,实现更好的效果; 对于数据集过大/过小,可以进行划分/有放回抽样的操作产生不同的数据子集,然后使用数据子集训练不同的学习器,最后合并成一个大的学习器 若数据划分边界过于复杂,使用线性模式很难描述,可以训练多个模型,后将模型进行合并; 对于多个异构的特征集的时候,很难进行融合,那么可以考虑每个数据集构建一个学习器模型,然后将多个模型融合 常见的集成算法有: Bagging Boosting Stacking 按照集成方式划分: 串行集成方法:通过串行的方法生成基础模型(如AdaBoost);串行集成的 基本动机 是利用基础模型之间的依赖,给被错分的样本一个较大的权重来提升性能; 并行集成方法:并行的生成基础模型(若Random Forest);并行集成的 基本动机

Flink Dataset Api(四)迭代操作

别来无恙 提交于 2019-12-02 05:21:46
一、bulkIteration 迭代算法在很多数据分析领域会用到,比如机器学习或者图计算。为了从大数据中抽取有用信息,这个时候往往会需要在处理的过程中用到迭代计算。大数据处理框架很多,比如spark,mr。实际上这些实现迭代计算都是很困难的。 Flink神奇之处就是它直接支持迭代计算。Flink实现迭代的思路也是很简单,就是实现一个step函数,然后将其嵌入到迭代算子中去。有两种迭代操作算子:Iterate和Delta Iterate。两个操作算子都是在未收到终止迭代信号之前一直调用step函数。 本小节是主要是讲解理论。 迭代操作算子包括了简单的迭代形式:每次迭代,step函数会消费全量数据(本次输入和上次迭代的结果),然后计算得到下轮迭代的输出(例如,map,reduce,join等) 1.迭代输入(Iteration Input) 第一次迭代的初始输入,可能来源于数据源或者先前的操作算子。 2. Step函数 每次迭代都会执行step函数。其是由map,reduce,join等算子组成的数据流,根据业务定制的。 3. 下次迭代的部分结果(Next Partial Solution): 每次迭代,step函数的输出结果会有部分返回参与继续迭代。 4. 最大迭代次数 如果没有其他终止条件,就会在聚合次数达到该值的情况下终止。 5. 自定义聚合器收敛:

第五篇 函数进阶

家住魔仙堡 提交于 2019-12-02 03:32:29
目录 第五篇 函数进阶 一 闭包函数 二 装饰器 三 迭代器 四 三元表达式 五 列表推导式 六 字典生成式 七 生成器 八 递归 九 匿名函数 十 内置函数 第五篇 函数进阶 ==回顾基础== 函数对象:可以将定义在函数内的函数返回到全局使用,从而打破函数的层级限制. 名称空间与作用域:作用域关系在函数定义阶段时就已经固定死了,与调用位置无关,即在任意位置调用函数都需要跑到定义函数时找到作用域关系. 一 闭包函数 闭包 闭就是封闭(函数内部函数),包就是包含(该内部函数对外部作用域而非全局作用域的变量的引用).闭包指的是:函数内部函数对外部作用域而非全局作用域的引用. 提示 之前我们都是通过参数将外部的值传给函数,闭包提供了另外一种思路,包起来咯,包起哟,包起来哇 def outter(): x = 1 def inner(): print(x) return inner f = outter() def f2(): x = 2 f() f2() # 1 两种为函数传参的方式 使用参数的形式 包给函数 闭包函数的应用 闭包的意义:返回的函数对象,不仅仅是一个函数对象,在函数还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域. 应用领域:延迟计算(原来我们是传参,现在我们是包起来),爬虫领域. import requests def ger(ur1):

python字符串内置函数

孤街浪徒 提交于 2019-12-02 02:59:49
1、字符串 定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串特性:1.只能存放一个值2.不可变3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序补充:  1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf'  2.unicode字符串与r连用必需在r前面,如name=ur'l\thf' 2、字符串常用操作 # 1字母处理: .upper() # 全部大写 .lower() # 全部小写 .swapcase() # 大小写互换 .capitalize() # 首字母大写,其余小写 .title() # 首字母大写 a='helLO' print(a.upper()) # 全部大写 print(a.lower()) # 全部小写 print(a.swapcase()) # 大小写互换 print(a.capitalize()) # 首字母大写,其余小写 print(a.title()) # 首字母大写 View Code # 2格式化相关 .ljust(width) # 获取固定长度,左对齐,右边不够用空格补齐 .rjust(width) # 获取固定长度,右对齐,左边不够用空格补齐 .center(width) #

JavaSE学习笔记:集合框架、迭代器、泛型

穿精又带淫゛_ 提交于 2019-12-02 00:47:22
文章目录 一、集合框架概述 1.Collection和Map 2.Collection集合 3.Collection集合常用方法 二、迭代器 1.常用方法 2.如何获取迭代器 3.使用步骤(掌握) 4.使用实例 5.迭代器使用原理 三、增强型for循环(更常用) 1.简介 2.使用实例 3.注意点 四、泛型 1.泛型的概念 2.使用泛型的好处 2.1使用集合对象,不使用泛型会带来的问题 2.1.1实例 2.1.2注意点 2.2使用集合使用泛型 2.2.1实例 2.2.2注意点 3.定义和使用含有泛型的类 4.定义和使用含有泛型的方法 4.1定义方法 4.2实例 5.定义和使用含有泛型的接口 5.1第一种使用方式 5.2第二种使用方式 6.泛型通配符 6.1基本使用:只能作为方法的参数使用 6.2不能创建对象使用 6.3泛型的上限限定和下限限定(了解) 6.3.1上限 6.3.2下限 五、List集合 1、List接口的三大特点 2.List接口中带索引的方法(独有) 2.1方法使用实例 3.注意:操作索引的时候,一定要防止索引越界异常 4.ArrayList实现类 5.LinkedList实现类 5.1特点 5.2特有方法 5.3使用实例 6.Vector(了解) 六、Set集合 1.特点 2.HashSet(常用来去重) 2.1特点 2.2使用实例 3.哈希值 3

JavaSE学习笔记--集合框架

女生的网名这么多〃 提交于 2019-12-02 00:44:20
//集合与数组的区别:集合不定长度,数组定长;集合只存储对象,数组什么都可以存。 //集合框架内不同的集合依据其内部不同的数据结构进行区分 Iterable//(接口)(内部有返回迭代器的方法) |--Collection //(接口)单列集合。方法:添加;删除;判断;获取(迭代器)。Itertor定义在Collection内部(Itertor是个内部类) //迭代器与枚举的区别:(1)迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素;(2)方法名称得到了改进。 |--List //(接口)有序的(存取顺序一致);元素可重复;元素有角标;有ListIterator列表迭代器。 //方法:添加;删除;判断;获取;修改;listItertor(获取列表迭代器,列表迭代器在Itertor上增加了新功能)。注意:使用迭代器容易出现并发修改异常 |--ArrayList //底层数据结构为数组;查询快。不同步,不安全;可变长度数组(以50%的速度增长:*3/2+1);多了个枚举(过时了,不用) |--Vector //底层数据结构为数组;支持枚举;效率低被ArrayList取代;同步,安全;可变长度数组(以100%的速度增长) |--LinkedList //底层数据结构为链表;增删快。不同步,不安全 |--Set //(接口)无序的;元素不可重复

Python高阶用法总结

家住魔仙堡 提交于 2019-12-02 00:17:24
目录 1. lambda匿名函数 1.1 函数式编程 1.2 应用在闭包 2. 列表解析式 3. enumerate内建函数 4. 迭代器与生成器 4.1 迭代器 4.3 生成器 5. 装饰器 前言: 接触python有一段时间了,从开始的看菜鸟的python教程,看了一些视频,一些书。很多人感觉python很简单,确实相比其他语言,python可能稍微简单一点,但是不能说只学了python基础语法就说自己python水平可以了。最近在阅读YOLOv3的pytorch版本源码,就遇到很多瓶颈,很多是与python相关的。所以这篇进行总结一下,收集一下所有的问题,更深入理解python高阶用法,并且尽量每个都附上例子,做一个认真的coder,bloger。 1. lambda匿名函数 lambda匿名函数在一些工程项目中经常出现,理解该用法是读懂项目的前提。如: lf = lambda x: 1 - 10 ** (hyp['lrf'] * (1 - x / epochs)) 匿名函数就是没有定义函数的名称,用来实现简单的功能。 语法结构: lambda param_list: expression param_list 就是参数列表,相当于函数的参数 expression 就是表达式,相当于函数体,用一行进行表示 举个简单的例子: >>> func=lambda x, y: x+y

STL源码剖析——序列式容器#1 Vector

本秂侑毒 提交于 2019-12-01 23:19:13
  在学完了Allocator、Iterator和Traits编程之后,我们终于可以进入STL的容器内部一探究竟了。STL的容器分为序列式容器和关联式容器,何为序列式容器呢?就是容器内的元素是可序的,但未必有序。C++本身就提供了一种序列式容器array(即数组),而STL就提供了多种序列式容器,这些容器都是基于常见的数据建构开发出来的,例如vector、list、deque等等。接下来我们将会对STL里的所有序列式容器进行逐一的学习。   本节要学的容器就是我们日常开发中使用最多的vector,vector的数据安排以及操作方式,与array非常相似。两者唯一的区别在于空间运用的灵活性。array是静态空间,配置了其大小就不能被改变,如果空间满了,要换大的,这只能自己手动来:配置新空间,将元素从旧址一一复制过去,再把原来的空间释放。而vector是动态空间,随着元素的加入,它内部会自行扩充空间,进行元素的复制并释放旧空间。所以在使用上,我们更趋向于使用vector而非array,因为不用考虑元素个数的问题,很适合动态元素个数的情况。我们不必因为害怕空间不足而一开始就要求一个大块头的array了。   我们先从vector类里的public部分出发,因为这部分是我们在使用vector时经常接触到的一些接口,从这些接口开始逐渐深挖,探究其里面的运作机制

推荐系统

懵懂的女人 提交于 2019-12-01 19:16:26
<div id="cnblogs_post_body" class="blogpost-body "> <blockquote> <p>58同城作为中国最大的分类信息网站,向用户提供找房子、找工作、二手车和黄页等多种生活信息。在这样的场景下,推荐系统能够帮助用户发现对自己有价值的信息,提升用户体验,本文将介绍58同城智能推荐系统的技术演进和实践。</p> </blockquote> <p>58同城智能推荐系统大约诞生于2014年(C++实现),该套系统先后经历了招聘、房产、二手车、黄页和二手物品等产品线的推荐业务迭代,但该系统耦合性高,难以适应推荐策略的快速迭代。58同城APP猜你喜欢推荐和推送项目在2016年快速迭代,产出了一套基于微服务架构的推荐系统(Java实现),该系统稳定、高性能且耦合性低,支持推荐策略的快速迭代,大大提高了推荐业务的迭代效率。此后,我们对旧的推荐系统进行了重构,将所有业务接入至新的推荐系统,最终成功打造了统一的58同城智能推荐系统。下面我们将对58同城智能推荐系统展开介绍,首先会概览整体架构,然后从算法、系统和数据三方面做详细介绍。</p> <p>整体架构首先看一下58同城推荐系统整体架构,一共分数据层、策略层和应用层三层,基于58平台产生的各类业务数据和用户积累的丰富的行为数据,我们采用各类策略对数据进行挖掘分析,最终将结果应用于各类推荐场景。</p>

Python3基础-迭代器

房东的猫 提交于 2019-12-01 19:12:17
迭代器介绍 迭代器即用例迭代取值的工具,而迭代式重复反馈过程的活动,其目的通常是为了逼近所需的目标或结果,每一次对过程的重复成为一次”迭代“;而每一次迭代得到的结果会作为下一个迭代的初始值,单纯的重复并不是迭代  可迭代对象 1、语法形式上,内置有__iter__方法的对象都是可迭代对象 2、字符串、列表、元祖、字典、集合、打开的文件都是可迭代对象 str='susu' str_iter=str.__iter__() #字符串 print(str_iter) list=[1,2,'a'] list_iter=list.__iter__() #列表 print(list_iter) dict={'name':'susu','paaswd':'123456'} dict_iter=dict.__iter__() #字典 print(dict_iter) tup=(1,2,3,4) tup_iter=tup.__iter__() #元祖 print(tup_iter) set={1,2,3,4,'yuyu'} set_iter=set.__iter__() #集合 print(set_iter) with open('aa.txt','rb') as f: f_iter=f.__iter__() #打开的文件 print(f_iter) """ 执行结果 <str_iterator