2019年5 月月 发布的文章

布隆过滤器

布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。
如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思路. 但是随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢(O(n),O(logn))。不过世界上还有一种叫作散列表(又叫哈希表,Hash table)的数据结构。它可以通过一个Hash函数将一个元素映射成一个位阵列(Bit array)中的一个点。这样一来,我们只要看看这个点是不是1就可以知道集合中有没有它了。这就是布隆过滤器的基本思想。
Hash面临的问题就是冲突。假设Hash函数是良好的,如果我们的位阵列长度为m个点,那么如果我们想将冲突率降低到例如 1%, 这个散列表就只能容纳m / 100个元素。显然这就不叫空间效率了(Space-efficient)了。解决方法也简单,就是使用多个Hash,如果它们有一个说元素不在集合中,那肯定就不在。如果它们都说在,虽然也有一定可能性它们在说谎,不过直觉上判断这种事情的概率是比较低的。

类图

类图(Class diagram)由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。
类图(Class diagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。
类图(Class diagram)最基本的元素是类或者接口。

接口
协作
关系
同其他的图一样,类图也可以包含注解和限制。
类图中也可以包含包和子系统,这两者用来将元素的分组。有时候你也可以将类的实例放到类图中。
注:组件图和分布图和类图类似,虽然他们不包含类而是分别包含组件和节点。
为系统词汇建模型
为系统的词汇建模实际上是从词汇表中发现类,发现它的责任。
模型化简单的协作
协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素相加能得到的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。使用类图来可视化这些类和他们的关系。
模型化一个逻辑数据库模式
想象模式是概念上设计数据库的蓝图。在很多领域,你将想保存持久性数据到关系数据库或面向对象的数据库。你可以用类图为这些数据库模式建立模型。

(Class)
一般包含3个组成部分。第一个是类名;第二个是属性(attributes);第三个是该类提供的方法( 类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分)。类名部分是不能省略的,其他组成部分可以省略。
类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。
属性和方法书写规范:修饰符 [描述信息] 属性、方法名称 [参数] [:返回类型|类型]
属性和方法之前可附加的可见性修饰符:
加号(+)表示public;减号(-)表示private;井号(#)表示protected;省略这些修饰符表示具有package(包)级别的可见性。
如果属性或方法具有下划线,则说明它是静态的。
描述信息使用 << 开头,使用 >> 结尾。
类的性质是由一个属性、一个赋值方法和一个取值方法组成。书写方式和方法类似。

(Package)
包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用物理性的包,用于转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。
接口
(Interface)
接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口的表示有大概两种方式。具体画法见下例:
关系
常见的关系有:继承(Inheritance),关联关系(Association),聚合关系(Aggregation),复合关系(Composition),依赖关系(Dependency),实现关系(Realization/Implementation)。
其中,聚合关系(Aggregation),复合关系(Composition)属于关联关系(Association)。
一般关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参
类图中的关系表示
类图中的关系表示
数(use a)。
一般化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。
表示方法: 用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。
关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。
表示方法:用 实线+箭头, 箭头指向被使用的类。
聚合关系:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。
表示方法:空心菱形+实线+箭头,箭头指向个体。
合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。
表示方法:实心菱形+实线+箭头,
依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
表示方法:虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量。

医疗行业调查

医渡云:
https://www.yiducloud.com.cn/
医渡云基于自主研发的“医学数据智能平台”,对大规模多源异构医疗数据进行集合和融合,形成患者全生命周期医学数据,可追溯,可监管,并通过数据的深度处理和分析,建立真实世界疾病领域模型,助力医学研究、医疗管理、政府公共决策、创新新药开发、帮助患者实现智能化疾病管理,引领大健康及人工智能产业创新,实现数据智能绿色医疗的新生态。
卓健科技:
http://www.zhuojianchina.com/
杭州卓健信息科技有限公司(卓健科技)顺应医改大方向,抓住医疗核心诊治业务,自内而外为大中型医院及医疗机构提供互联网化解决方案,打造智慧医院生态闭环。卓健科技拥有分级诊疗、互联网医院、移动远程、掌上医院、医链、院后医疗服务系统等六大产品体系,是互联网医疗领域中最具成长性高科技企业。
宜昌模式:
http://www.sohu.com/a/225447528_389045
可以看出加快推进互联网+分级诊疗和医联体建设的战略仍然是今后相当一段时期的医改重点。而本次两会就有多个代表委员的提案和分级诊疗或者医联体息息相关。作为新一届的全国政协委员,搜狗公司CEO王小川带来了两份提案,其中一份提案建议构建新型医联体,打通医疗惠民“最后一公里”,实现每个中国家庭都有家庭医生。而全国政协委员、中国中医科学院望京医院骨科主任温建民则认为建立分级诊疗制度 要以慢病为突破口。
方庄模式:
http://www.sohu.com/a/225224741_374886
让市民和社区卫生服务中心全科大夫“结对子”,绑定信息提供日常就诊服务;对陌生病患的问诊时间要达到15分钟,北京市正在研究医改系统的“方庄模式”,通过引入大数据、人工智能和信息化及多项软性服务,为居民提供更好的健康服务。
经初步统计,2017年,北京市社区卫生服务中心和一级医院就诊人次达到6823.4万,占全北京市总诊疗量的28.57%。和前年同期相比增长约2.32个百分点。“越来越多的百姓习惯到社区和一级医院看病,社区卫生服务中心需要有足够的能力去支撑。”
目前,北京市正在研究医改系统的“方庄模式”,通过引入大数据、人工智能(AI)和信息化等模式及多项软性服务,为老百姓提供日常的就诊和健康服务。对陌生病患的问诊时间要达到15分钟,即使是老病患也要达到8分钟;未来,社区卫生服务中心还可以直接下单,用物流配送将药物直接送到百姓家。
第一届健康智谷高峰论坛:
http://www.sohu.com/a/237261105_139908

决策树

决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。
决策树方法最早产生于上世纪60年代,到70年代末。由J Ross Quinlan提出了ID3算法,此算法的目的在于减少树的深度。但是忽略了叶子数目的研究。C4.5算法在ID3算法的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。
决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要有历史的、有一定综合程度的,用于数据分析处理的数据集。第二步,决策树的剪枝:决策树的剪枝是对上一阶段生成的决策树进行检验、校正和修下的过程,主要是用新的样本数据集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除。
目标:根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。决策树学习本质上是从训练数据集中归纳出一组分类规则。能对训练数据进行正确分类的决策树可能有多个,可能没有。在选择决策树时,应选择一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力;而且选择的条件概率模型应该不仅对训练数据有很好的拟合,而且对未知数据有很好的预测。 [1]
损失函数:通常是正则化的极大似然函数
策略:是以损失函数为目标函数的最小化
因为从所有可能的决策树中选取最优决策树是NP完全问题,所以现实中决策树学习通常采用启发式方法,近似求解这一最优化问题,得到的决策树是次最优(sub-optimal)的。
决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。包含特征选择、决策树的生成和决策树的剪枝过程。
决策树算法的优点如下:
(1)分类精度高;
(2)生成的模式简单;
(3)对噪声数据有很好的健壮性。
因而是目前应用最为广泛的归纳推理算法之一,在数据挖掘中受到研究者的广泛关注
基本思想L
1)树以代表训练样本的单个结点开始。
2)如果样本都在同一个类.则该结点成为树叶,并用该类标记。
3)否则,算法选择最有分类能力的属性作为决策树的当前结点.
4)根据当前决策结点属性取值的不同,将训练样本数据集tlI分为若干子集,每个取值形成一个分枝,有几个取值形成几个分枝。匀针对上一步得到的一个子集,重复进行先前步骤,递4’I形成每个划分样本上的决策树。一旦一个属性出现在一个结点上,就不必在该结点的任何后代考虑它。
5)递归划分步骤仅当下列条件之一成立时停止:
①给定结点的所有样本属于同一类。
②没有剩余属性可以用来进一步划分样本.在这种情况下.使用多数表决,将给定的结点转换成树叶,并以样本中元组个数最多的类别作为类别标记,同时也可以存放该结点样本的类别分布,
③如果某一分枝tc,没有满足该分支中已有分类的样本,则以样本的多数类创建一个树叶。 [

词向量

词向量(Word embedding),又叫Word嵌入式自然语言处理(NLP)中的一组语言建模和特征学习技术的统称,其中来自词汇表的单词或短语被映射到实数的向量。 从概念上讲,它涉及从每个单词一维的空间到具有更低维度的连续向量空间的数学嵌入。
生成这种映射的方法包括神经网络,单词共生矩阵的降维,概率模型,可解释的知识库方法,和术语的显式表示 单词出现的背景。
当用作底层输入表示时,单词和短语嵌入已经被证明可以提高NLP任务的性能,例如语法分析和情感分析。
思想向量是单词嵌入到整个句子甚至文档的扩展。一些研究人员希望这些可以提高机器翻译的质量。
为什么需要词向量?
众所周知,不管是机器学习还是深度学习本质上都是对数字的数字,Word Embedding(词嵌入)做的事情就是将单词映射到向量空间里,并用向量来表示
一个简单的对比
One-hot Vector
对应的词所在的位置设为1,其他为0;
例如:King, Queen, Man and Woman这句里面Queen对应的向量就是[0,1,0,0]
不足:难以发现词之间的关系,以及难以捕捉句法(结构)和语义(意思)之间的关系
Word2Vec
基本思想是把每个词表征为K维的实数向量(每个实数都对应着一个特征,可以是和其他单词之间的联系),将相似的单词分组映射到向量空间的不同部分。也就是Word2Vec能在没有人为干涉下学习到单词之间的关系。
举个最经典的例子:
king- man + woman = queen
实际上的处理是:从king提取了maleness的含义,加上了woman具有的femaleness的意思,最后答案就是queen.
借助表格来理解就是:
animal pet
dog -0.4 0.02
lion 0.2 0.35
比如,animal那一列表示的就是左边的词与animal这个概念的相关性
https://www.cnblogs.com/MartinLwx/p/10005520.html

百度自然语言处理接口

词法分析 分词、词性标注、专名识别
依存句法分析 自动分析文本中的依存句法结构信息
词向量表示 查询词汇的词向量,实现文本的可计算
DNN语言模型 判断一句话是否符合语言表达习惯
词义相似度 计算两个给定词语的语义相似度
短文本相似度 判断两个文本的语义相似度
中文分词 切分出连续文本中的基本词汇序列(已合并到词法分析接口)
词性标注 为自然语言文本中的每个词汇赋予词性(已合并到词法分析接口)