样本容量

K近邻法(KNN)原理小结

不想你离开。 提交于 2020-04-01 06:10:06
K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用。比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出了。这里就运用了KNN的思想。KNN方法既可以做分类,也可以做回归,这点和决策树算法相同。     KNN做回归和分类的主要区别在于最后做预测时候的决策方式不同。KNN做分类预测时,一般是选择多数表决法,即训练集里和预测的样本特征最近的K个样本,预测为里面有最多类别数的类别。而KNN做回归时,一般是选择平均法,即最近的K个样本的样本输出的平均值作为回归预测值。由于两者区别不大,虽然本文主要是讲解KNN的分类方法,但思想对KNN的回归方法也适用。由于scikit-learn里只使用了蛮力实现(brute-force),KD树实现(KDTree)和球树(BallTree)实现,本文只讨论这几种算法的实现原理。其余的实现方法比如BBF树,MVP树等,在这里不做讨论。 1. KNN算法三要素     KNN算法我们主要要考虑三个重要的要素,对于固定的训练集,只要这三点确定了,算法的预测方式也就决定了。这三个最终的要素是k值的选取,距离度量的方式和分类决策规则。     对于分类决策规则,一般都是使用前面提到的多数表决法。所以我们重点是关注与k值的选择和距离的度量方式。     对于k值的选择

tensorflow数据读取机制tf.train.slice_input_producer 和 tf.train.batch 函数

a 夏天 提交于 2020-03-27 21:56:54
tensorflow中为了充分利用 GPU ,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算。 具体来说就是使用一个线程 源源不断 的将硬盘中的图片数据读入到一个内存队列中,另一个线程负责计算任务,所需数据直接从内存队列中获取。 tf在内存队列之前,还设立了一个文件名队列,文件名队列存放的是参与训练的文件名,要训练 N个epoch,则文件名队列中就含有N个批次的所有文件名。而创建tf的文件名队列就需要使用到 tf.train.slice_input_producer 函数。 tf.train.slice_input_producer是一个tensor生成器,作用是按照设定,每次从一个tensor列表中按顺序或者随机抽取出一个tensor放入文件名队列。 tf.train.slice_input_producer(tensor_list, num_epochs=None, shuffle=True, seed=None, capacity=32, shared_name=None, name=None)  第一个参数 tensor_list:包含一系列tensor的列表,表中tensor的第一维度的值必须相等,即个数必须相等,有多少个图像,就应该有多少个对应的标签。 第二个参数num_epochs: 可选参数,是一个整数值,代表迭代的次数,如果设置 num

机器学习周志华——模型评估与选择

北城以北 提交于 2020-03-24 13:54:40
(1)经验误差与过拟合 错误率error rate:分类错误的样本数占样本总数的比例a。 精度accuracy:分类正确的样本数占样本总数的比例1-a。 误差error:|实际预测输出-样本真实输出| 训练误差training error或经验误差empirical error:学习器在训练集上的误差 泛化误差generalization error:在新样本上的误差 学习的理想情况:从训练样本中尽可能学出适用于所有潜在样本的“普通规律” 过拟合(overfitting):学习器把训练样本学的“太好”,很可能导致已将训练样本自身一些特点当作了潜在样本的共性,如些导致泛化性能下降。由于学习能力太强导致。 欠拟合underfitting:对训练样本的一般性质未学好。通常由于学习能力低下导致。 欠拟合比较容易解决,过拟合则不太好解决,过拟合是机器学习面临的关键障碍,但过拟合是无法彻底避免的。 现实学习任务中,选择学习算法及确定参数配置即是“模型选择”(model selection)问题。 (2)模型评估 由于无法获取所有样本上的泛化误差,因此一般只能以测试集上的“测试误差”(testing error)作为泛化误差的近似。 测试集应尽可能与训练集互斥,即测试样本未在训练中使用过。 针对m个样本的数据集D={( x 1 , y 1 ),( x 2 , y 2 ),…,( x m , y

布布扣 - 缅 甸 小 勐 拉 银 河 国 际 代 理 - 计量--一元线性回归模型

不羁岁月 提交于 2020-03-21 20:16:59
██【電:131.乀.1418.乀.6667】【薇Q:9788.乀.9181】██ 缅 甸 小 勐 拉 银 河 国 际 代 理 一、回归分析概述 1.变量之间的关系 确定性现象(函数关系),例长方形的周长 非确定性现象(统计相关关系),例身高和体重 2.相关关系与回归分析 相关分析:研究两(或多个)变量的相关性及相关程度(使用相关系数表示) 回归分析:已经存在相关关系,求解其 因果关系, 变量地位不对等(一因一国),根据自变量的变化可以预测运动规律。 举个栗子: (1)打篮球的人个子更高。 不对,现实是个子更高的人选择了打篮球,属于因果倒置。 (2)社会地位高的人寿命更长。 不对,社会地位高受到的医疗较好,医疗较好导致寿命长一些。 Tips :因果关系的前提:时间先后。 3、相关分析分为线性和非线性(提示:若不相关则将相关性赋为0) 线性相关: 两个变量:计算协方差、相关系数 多个变量:计算偏相关系数、复相关系数 二、总体回归函数(PRF) 在给定解释变量X的条件下,被解释变量Y的期望轨迹称为总体回归曲线,其对应的函数 E(Y|X)=f(X) F最简形式为线性函数。其截距、斜率为线性回归系数,表达式如下所示,其中β 0 代表自发消费,β 1 代表边际消费趋向。 E(Y|X)=β 0 +β 1 X 识别:因变量Y为被解释变量、被预测变量、回归子、响应变量,自变量X为解释变量、预测变量

博客园 - 缅 甸 银 河 国 际 提 供 住 宿 - 计量--一元线性回归模型

笑着哭i 提交于 2020-03-21 20:15:03
██【電:131.乀.1418.乀.6667】【薇Q:9788.乀.9181】██ 缅 甸 银 河 国 际 提 供 住 宿 一、回归分析概述 1.变量之间的关系 确定性现象(函数关系),例长方形的周长 非确定性现象(统计相关关系),例身高和体重 2.相关关系与回归分析 相关分析:研究两(或多个)变量的相关性及相关程度(使用相关系数表示) 回归分析:已经存在相关关系,求解其 因果关系, 变量地位不对等(一因一国),根据自变量的变化可以预测运动规律。 举个栗子: (1)打篮球的人个子更高。 不对,现实是个子更高的人选择了打篮球,属于因果倒置。 (2)社会地位高的人寿命更长。 不对,社会地位高受到的医疗较好,医疗较好导致寿命长一些。 Tips :因果关系的前提:时间先后。 3、相关分析分为线性和非线性(提示:若不相关则将相关性赋为0) 线性相关: 两个变量:计算协方差、相关系数 多个变量:计算偏相关系数、复相关系数 二、总体回归函数(PRF) 在给定解释变量X的条件下,被解释变量Y的期望轨迹称为总体回归曲线,其对应的函数 E(Y|X)=f(X) F最简形式为线性函数。其截距、斜率为线性回归系数,表达式如下所示,其中β 0 代表自发消费,β 1 代表边际消费趋向。 E(Y|X)=β 0 +β 1 X 识别:因变量Y为被解释变量、被预测变量、回归子、响应变量,自变量X为解释变量、预测变量

终于找到 - 缅 甸 维 加 斯 客 服 - 计量--一元线性回归模型

霸气de小男生 提交于 2020-03-21 20:08:40
██【電:131.乀.1418.乀.6667】【薇Q:9788.乀.9181】██ 缅 甸 维 加 斯 客 服 一、回归分析概述 1.变量之间的关系 确定性现象(函数关系),例长方形的周长 非确定性现象(统计相关关系),例身高和体重 2.相关关系与回归分析 相关分析:研究两(或多个)变量的相关性及相关程度(使用相关系数表示) 回归分析:已经存在相关关系,求解其 因果关系, 变量地位不对等(一因一国),根据自变量的变化可以预测运动规律。 举个栗子: (1)打篮球的人个子更高。 不对,现实是个子更高的人选择了打篮球,属于因果倒置。 (2)社会地位高的人寿命更长。 不对,社会地位高受到的医疗较好,医疗较好导致寿命长一些。 Tips :因果关系的前提:时间先后。 3、相关分析分为线性和非线性(提示:若不相关则将相关性赋为0) 线性相关: 两个变量:计算协方差、相关系数 多个变量:计算偏相关系数、复相关系数 二、总体回归函数(PRF) 在给定解释变量X的条件下,被解释变量Y的期望轨迹称为总体回归曲线,其对应的函数 E(Y|X)=f(X) F最简形式为线性函数。其截距、斜率为线性回归系数,表达式如下所示,其中β 0 代表自发消费,β 1 代表边际消费趋向。 E(Y|X)=β 0 +β 1 X 识别:因变量Y为被解释变量、被预测变量、回归子、响应变量,自变量X为解释变量、预测变量、回归元

2.机器学习之KNN

☆樱花仙子☆ 提交于 2020-03-13 15:02:33
K-最近邻(k-Nearest Neighbor,KNN)分类算法,kNN算法的核心思想是: 如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性 。打个比方:你们想了解我是个怎样的人,然后你们发现我的身边关系最密切的朋友是一群逗逼,所以你们可以默认我也是一个逗逼。 例如:如下图所示,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,因此绿色圆被赋予红色三角形那个类;如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。 数据分析当中KNN通过测量不同特征值之间的距离来进行分类的。存在一个样本数据集合,也称作训练样本集,并且样本集中的每个数据都存在标签,所选择的邻居都是已经正确分类的对象,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的数据后,将这个没有标签的数据的每个特征与样本集中的数据对应的特征进行比较,然后提取样本中特征最相近的数据(最近邻)的分类标签;即利用训练数据对特征向量空间进行划分,并将划分结果作为最终算法模型。对于任意n维输入向量,分别对应于特征空间中的一个点,输出为该特征向量所对应的类别标签或预测值。 一般而言,我们只选择样本数据集中前k个最相似的数据,这就是KNN算法中K的由来,通常k是不大于20的整数。最后

深度学习解决局部极值和梯度消失问题方法简析(转载)

眉间皱痕 提交于 2020-03-12 04:49:05
转载:http://blog.sina.com.cn/s/blog_15f0112800102wojj.html 这篇文章关于对深度CNN中BP梯度消失的问题的做了不错的解析,可以看一下: 多层感知机解决了之前无法模拟异或逻辑的缺陷,同时更多的层数也让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。多层感知机给我们带来的启示是,神经网络的层数直接决定了它对现实的刻画能力——利用每层更少的神经元拟合更加复杂的函数。但是随着神经网络层数的加深,优化函数越来越容易陷入局部最优解(即过拟合,在训练样本上有很好的拟合效果,但是在测试集上效果很差),并且这个“陷阱”越来越偏离真正的全局最优。利用有限数据训练的深层网络,性能还不如较浅层网络。同时,另一个不可忽略的问题是随着网络层数增加,“梯度消失”(或者说是梯度发散diverge)现象更加严重。具体来说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。那么深度学习中是如何解决局部极值及梯度消失问题的呢? 根据我个人的理解,第一个阶段就是2006年Hinton提出的逐层预训练方法,为了解决深层神经网络的训练问题

统计1:概述

て烟熏妆下的殇ゞ 提交于 2020-03-07 06:57:13
概率论是人们在长期实践中发现的理论,是客观存在的。自然界和社会上发生的现象是多种多样的,有一类现象,在一定条件下必然发生,称作确定性现象,而概率论研究的现象是不确定性现象,嗯嗯,醒醒,概率论研究的对象是 随机现象 。那什么是随机现象呢?在个别试验中呈现出不确定性,而在大量重复实验中呈现出固有规律性的现象,称作随机现象,在大量重复实验中所呈现的固有规律,是统计规律性,也就是概率。 一,概率和频率 在提到概率之前,不得不说频率。对于一个随机事件来说,在一次试验中可能发生,也可能不发生,那么,如何表征事件在一次试验中发生的可能性大小呢?为了解答这个问题,引入了频率。频率描述了事件发生的频繁程度,频率越大,事件发生的越频繁,这意味着事件在一次试验中发生的可能性越大。我们定义,概率表征事件在一次试验中发生的可能性大小,因此,可从频率引出概率。 大数定理和中心极限定理是概率论的基本理论。大数定理论证了频率具有稳定性,中心极限定理表明了正态分布是普遍适用的。 概率是事件的固有规律,必须是稳定的一个数值,频率具有稳定性吗?在长期实践中,当试验次数不断增大时,事件发生的频率稳定在一个值附近,这一客观事实证明频率具有稳定性。 伯努利大数定理 用数学公式证明了频率的稳定性,因此,在实际应用中,当试验次数很大时,可以用事件的频率来代替事件的概率,用于表征事件发生的可能性大小。

【转载】 tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数

二次信任 提交于 2020-03-07 06:39:15
原文地址: https://blog.csdn.net/dcrmg/article/details/79776876 ------------------------------------------------------------------------------------------------------------------ tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算。 具体来说就是使用一个线程源源不断的将硬盘中的图片数据读入到一个内存队列中,另一个线程负责计算任务,所需数据直接从内存队列中获取。 tf在内存队列之前,还设立了一个文件名队列,文件名队列存放的是参与训练的文件名,要训练 N个epoch,则文件名队列中就含有N个批次的所有文件名。 示例图如下: 图片来至于 https://zhuanlan.zhihu.com/p/27238630 ) 在N个epoch的文件名最后是一个结束标志,当tf读到这个结束标志的时候,会抛出一个 OutofRange 的异常,外部捕获到这个异常之后就可以结束程序了。而创建tf的文件名队列就需要使用到 tf.train.slice_input_producer 函数。 tf.train.slice_input_producer