信息熵

信息熵

风流意气都作罢 提交于 2019-12-06 05:40:28
信息熵一直在机器学习的领域兴风作浪,给出最简单最直接的方式认识信息熵 来源: https://www.cnblogs.com/limingqi/p/11964348.html

信息论小记

六月ゝ 毕业季﹏ 提交于 2019-12-05 16:40:40
知道一堆词汇里各个字出现的概率p i ,则对这些字的最优编码下各字的位长(也即每个字包含的信息)为: 香农公式 : ,知道各字的位长后,可依次给他们编码0、10、110... 这些字的平均编码长度为(也即信息量,或称信息熵): 信息熵 : 总结:信息是不确定性的度量,不确定性体现在概率分布上:概率分布越散,不确定性越大,从而信息量越大 来源: https://www.cnblogs.com/z-sm/p/11933813.html

距离计算公式总结(转载)

前提是你 提交于 2019-12-05 11:47:55
计算推荐对象的内容特征和用户模型中兴趣特征二者之间的相似性是推荐算法中一个关键部分 ,相似性的度量可以通过计算距离来实现 在做很多研究问题时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。   本文的目的就是对常用的相似性度量作一个总结。 本文目录: 1. 欧氏距离 2. 曼哈顿距离 3. 切比雪夫距离 4. 闵可夫斯基距离 5. 标准化欧氏距离 6. 马氏距离 7. 夹角余弦 8. 汉明距离 9. 杰卡德距离 & 杰卡德相似系数 10. 相关系数 & 相关距离 11. 信息熵 1. 欧氏距离(Euclidean Distance) 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。 (1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离: (2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离: (3)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:   也可以用表示成向量运算的形式: (4)Matlab计算欧氏距离 Matlab计算距离主要使用pdist函数。若X是一个M×N的矩阵,则pdist(X

信息与计算机

扶醉桌前 提交于 2019-12-05 11:47:13
1.信息 1.1信息的定义(一般) (1) 维纳的信息定义:信息是信息,不是物质,也不是能量。 (2) 信息是反映事物的形式、关系和差别的东西。信息存在于客体间的差别之中,而不是存在于客体之中。 (3) 钟义信的信息定义:信息是被反映的物质属性或者信息是事物属性的反映。 (4) 香农的信息定义:信息就是用来消除不确定性的东西。 (5) 属加种差定义:被定义概念(种概念) =临近的属概念+种差。 1.2信息的种类(简单) 按照不同的分类标准,可以显示多种类型的信息,例如按照信息所起的作用,可以分为无用信息、有用信息和干扰信息。 1.3信息的度量(一般) 信息是一个很抽象的概念。自信息量是指一个事件本身所包含的信息量,它是由事件的不确定性所决定的。收到某信息获得的信息量等于不确定性减少的量。 信息熵是指信息中排除了多余重复信息之后的平均信息量。当各个事件出现的概率相等,即不确定性最高时,信息熵最大。故信息熵可以视为对不确定性或者选择的自由度的度量。 计算机中用比特( bit)来度量信息熵。 计算机信息处理 2.1位模式的信息表示(简单) 位模式是一个序列,有时也称为位串,他是 0和1的组合。通常长度为8的位模式被称为1个字节,一个字由若干字节组成。 2.2计算机信息处理过程(简单) 信息处理就是对信息进行接收、储存、转化、传输和发布等。 图灵机(难)

计算机导论第十一周课后总结

北城余情 提交于 2019-12-04 18:25:46
通过本节课的学习,我了解了信息方面,计算机信息处理方面,图灵机方面的知识。现总结如下: 一.信息 1.信息的定义 :信息的定义目前没有统一的、能为各界普遍认同的定义。几个比较有代表性的有 : (1)维纳:将信息提到了最基本的概念的位置,提出信息是信息,不是物质也不是能量。 (2)信息是差异化的定义:信息是反映事物形式,关系和差别的东西。信息存在于客体间的差别之中,而不是存在于客体之中。 (3)钟义信:在本体论和认识论层次上提出了信息定义体系。 (4)香农:用以经典集合论为基础的概率模型来描述。 (5)种加属差概念:种概念=属概念+种差。 2.信息的种类 按照不同的标准会有不同的分类。如按照携带信息的信号性质,可以将信息分为连续信息、半连续信息和离散信息。按照信息物体的性质,可以将信息分为自然信息(声,光,热,电等) 3.信息的度量: 一般用自信息量和信息熵来衡量。 自信息量:一个事件本身所包含的或所能提供的信息量,是对单个事件不确定性的度量。 I=-log2(P(X))bit 信息熵:信息中排除了多余重复信息之后的平均信息量。是从平均意义上对信息不确定性的度量。 H=-和(P(x)log2(P(x))) 不确定性越高,信息熵越大 二 位信息的信息表示 : 统一的格式为位模式,长度8的位模式被称为1个字节,一个字由若干个字节组成。 1.文本的表示: 常见有ASCII编码

特征选择算法学习2

独自空忆成欢 提交于 2019-12-04 03:32:41
特征选择算法学习笔记2 主要讲一下常见的评价函数 评价函数就是给特征选择后选择的好坏做一个直观额解释。。和智能算法中的评价函数是一样的,总得量化展示的 (一)思维导图 个人感觉这个图交代的挺清楚地儿。。可以概括。。源地址https://www.cnblogs.com/babyfei/p/9674128.html (二)特征选择中常见的评价函数主要分为三种 过滤式 filter 包裹式 wrapper 嵌入式 embeded 过滤式 filter 1.定义:对每一维的特征“打分”,即给每一维的特征赋予权重,这样的权重就代表着该维特征的重要性,然后依据权重排序。 简单的来说就是利用概率统计的方法进行评价。。 2.常见方法: 2.1 相关性( Correlation) 运用相关性来度量特征子集的好坏是基于这样一个假设:好的特征子集所包含的特征应该是与分类的相关度较高(相关度高),而特征之间相关度较低的(亢余度低)。可以使用线性相关系数(correlation coefficient) 来衡量向量之间线性相关度。其实就是person相关系数,在R里面的函数就是cor().. 2.2 距离 (Distance Metrics ) 运用距离度量进行特征选择是基于这样的假设:好的特征子集应该使得属于同一类的样本距离尽可能小,属于不同类的样本之间的距离尽可能远。 常用的距离度量(相似性度量

Kaggle实战之决策树完成泰坦尼克号船员获救比赛

女生的网名这么多〃 提交于 2019-12-04 00:32:30
一、决策树的基本原理: 决策树简而言之就是根据不同的分类标准(Classification criteria)对于节点类别判断的先后顺序进行选择,进而对于训练集、测试集进行分类。 决策树使用树模型分类很快(相对于knn一个点一个点去算要快多了), 但是树模型也存在两个问题: 过拟合,分类标准选择 过拟合 树模型都存在很严重的过拟合问题, 如果树的深度不加任何限制, 最终肯定是一个叶子节点一个样本, 这样再对于没有训练过的测试集而言效果就很差. 解决方法有两种, 前剪枝和后剪枝, 即在构建决策树的时候将一些叶子节点砍掉和在不限深度建完树之后再将一些叶子节点砍掉. 由于sklearn只支持前剪枝, 所以我们可以通过交叉验证的方法挑选出最合适的树深度, 当达到一定深度时我们就不再新增节点. 分类标准(Classification criteria): 通常有信息熵和基尼指数两种 信息熵: 其中, 香农的信息论提出了该方法, ID3算法中我们使用了信息增益来选择特征,先计算不同类别的数据的信息增益,信息增益大的优先选择, 这里面会涉及大量的对数运算,效果一般而言没有下面这种利用基尼指数的方法好。 基尼指数: 其中, 基尼指数的运算较信息增益简单,可以做为熵模型的一个近似替代。效果较好,这篇博客用于Kaggle竞赛的也是这种分类方法。 二、sklearn库的常用接口: 分类:sklearn

机器学习之 决策树

匿名 (未验证) 提交于 2019-12-03 00:30:01
决策树在现实生活中应用广泛,也非常容易理解,通过构建一颗决策树,只要根据树的的判断条件不断地进行下去,最终就会返回一个结果。例如下图所示。决策树天然地可以解决多分类问题,同时也可以应用于回归问题中。 现在先通过sklearn中封装的决策树方法对数据进行分类,来学习决策树。 [html] view plain copy print ? iris datasets x = iris y = iris plt.scatter(x[ y ==0,0],x[ y plt.scatter(x[ y ==1,0],x[ y plt.scatter(x[ y ==2,0],x[ y import numpy as np import matplotlib.pyplot as plt from sklearn import datasets iris = datasets.load_iris() x=iris.data[:,2:]#这里就用了2个特征 y=iris.target plt.scatter(x[y==0,0],x[y==0,1]) plt.scatter(x[y==1,0],x[y==1,1]) plt.scatter(x[y==2,0],x[y==2,1]) plt.show() [html] view plain copy print ? dt

,一天一个小demo!

匿名 (未验证) 提交于 2019-12-03 00:18:01
#!/usr/bin/env python # -*- coding: utf-8 -*- # @createTime : 18-5-22 下午4:44 # @author : nn import numpy as np import math data=[[ 0 , 1 , 0 ],[ 1 , 0 , 0 ],[ 0 , 1 , 0 ],[ 1 , 1 , 1 ]] print(type(data)) data = np.array(data) print(type(data)) for each_data in data: print each_data **( 1 )计算给定数据集的信息熵的代码如下**: def calcshan (data) : lendata = len(data) p={} H= 0 for each_data in data: current_label = each_data[- 1 ] if current_label not in p.keys(): p[current_label] = 0 #此处初始化很重要,否则p[current_label] = p[current_label]+1会出现keyerror错误; p[current_label] += 1 for keys in p.keys(): px = float(p[keys])

决策树

匿名 (未验证) 提交于 2019-12-02 23:57:01
信息熵:离散型,对取值数目较多的属性有所偏好,因为一个有n个取值的属性都不相同则分成n个类别(节点),每一个节点的纯度都是1(信息熵为0)。   样本集合D中第k类样本所占的比例是$p_{k}(k=1,2,3....|y|)$,则D的信息熵且$End(D)$的值越小则D的纯度越高:   $Ent(D)=-\sum_{k=1}^{|y|}p_{k}log_{2}p_{k}$ 信息增益:越大纯度提升越大   $Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac {|D^{v}|} {|D|}Ent(D^{v})$ 增益率:减少信息增益对取值数目较多的属性有所偏好的影响,但是增益率对取值数目较少的属性有所偏好,因此不直接选择增益率最大的候选划分属性,而是找出信息增益高于平均水平的属性再从中选择增益率最大的。   $Gain\_ratio(D,a)=\frac {Gain(D,a)} {IV(a)}$   $IV(a)=-\sum_{v=1}^{V} \frac {|D^{v}|} {|D|}log_{2}\frac {|D^{v}|} {|D|}$ 基尼系数: 基尼值:反映了从数据集D中随机抽取俩个样本,其类别标记不一致的概率,越小纯度越高。   $Gini(D)=\sum_{k=1}^{|y|}\sum_{{k}' \neq k}p_{k}p_{{k}'} = 1