一 背景介绍 不平衡信息,特点是少数信息更珍贵,多数信息没有代表性.所以一般的分类算法会被多数信息影响,而忽略少数信息的重要性. 解决策略: 1.数据级别 (1)上采样:增加稀有类成本数 (2)下采样:减少大类样本数 (3)混合方法:结合(1)(2) 2.算法算法级别 (1)代价敏感学习方法:对正类错分赋予更高的代价,从而迫使分类器对正类有更高的识别率. (2)分类器集成方法:首先数据级技术处理数据分布,然后选择算法级算法进行分类. 但这些策略都有各自的缺点,比如:上采用会导致过度学习,下采样会…
算法 假定数据有M个特征,则这些数据相当于在M维空间内的点 \[X = \begin{pmatrix} x_{11} & x_{12} & ... & x_{1M} \\ x_{21} & x_{22} & ... & x_{2M} \\ . & . & & .\\ . & . & & .\\ . & . & & .\\ x_{N1} & x_{N2} & ... &am…
算法概述 K最近邻(K-Nearest Neighbor,KNN)算法,是著名的模式识别统计学方法,在机器学习分类算法中占有相当大的地位.它是一个理论上比较成熟的方法.既是最简单的机器学习算法之一,也是基于实例的学习方法中最基本的,又是最好的文本分类算法之一. 基本思想 如果一个实例在特征空间中的K个最相似(即特征空间中最近邻)的实例中的大多数属于某一个类别,则该实例也属于这个类别.所选择的邻居都是已经正确分类的实例.该算法假定所有的实例对应于N维欧式空间中的一个点.通过计算一个点与其他所有点之…
K最近邻算法 KNN 基本原理 离哪个类近,就属于该类   [例如:与下方新元素距离最近的三个点中,2个深色,所以新元素分类为深色] K的含义就是最近邻的个数.在sklearn中,KNN的K值是通过n_neighbors参数来调节的   不适用:对数据集认真的预处理.对规模超大的数据集拟合的时间较长.对高维数据集拟合欠佳.对稀疏数据集无能为力   KNN用法 1.分类任务中的应用 from sklearn.datasets import make_blobs   #导入数据集生成器from sk…
手写数字digits分类,这可是深度学习算法的入门练习.而且还有专门的手写数字MINIST库.opencv提供了一张手写数字图片给我们,先来看看 这是一张密密麻麻的手写数字图:图片大小为1000*2000,有0-9的10个数字,每5行为一个数字,总共50行,共有5000个手写数字.在opencv3.0版本中,图片存放位置为 /opencv/sources/samples/data/digits.png 我们首先要做的,就是把这5000个手写数字,一个个截取出来,每个数字块大小为20*20.直接将…
Evernote Export 1.基于实例的学习介绍 不同级别的学习,去除所有的数据点(xi​,yi​),然后放入一个数据库中,下次直接提取数据 但是这样的实现方法将不能进行泛化,这种方式只能简单的进行数据提取,它也会存储很多的噪音 3.最近邻算法 KNN算法原理就是查找未知点的最近已知点,然后进行归类,但是当遇到最近邻都相差不多的时候,就需要更大的背景去识别 k的意思是邻居的数量 4.KNN算法(伪代码) Training Data--> D={xi,yi} #训练数据(输入的集合) Dia…
一.介绍 二.编程 练习一(K最近邻算法在单分类任务的应用): import numpy as np #导入科学计算包import matplotlib.pyplot as plt #导入画图工具from sklearn.datasets import make_blobs #导入数据集生成器from sklearn.neighbors import KNeighborsClassifier #导入KNN分类器(KNN回归树的类)from sklearn.model_selection impo…
K最近邻(K-Nearest-Neighbour,KNN)算法是机器学习里简单易掌握的一个算法.通过你的邻居判断你的类型,“近朱者赤,近墨者黑”表达了K近邻的算法思想. 一.算法描述: 1.1 KNN算法的原理 KNN算法的前提是存在一个样本的数据集,每一个样本都有自己的标签,表明自己的类型.现在有一个新的未知的数据,需要判断它的类型.那么通过计算新未知数据与已有的数据集中每一个样本的距离,然后按照从近到远排序.取前K个最近距离的样本,来判断新数据的类型. 通过两个例子来说明KNN算法的原理 (…
笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评价模型的方式. 常见的应用在监督学习算法中的是计算平均绝对误差(MAE).平均平方差(MSE).标准平均方差(NMSE)和均值等,这些指标计算简单.容易理解:而稍微复杂的情况下,更多地考虑的是一些高大上的指标,信息熵.复杂度和基尼值等等. 本篇可以用于情感挖掘中的监督式算法的模型评估,可以与博客对着看:R语言…
random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Python会自动选择seed. random.random()    用于生成一个随机浮点数n,0 <= n < 1 random.uniform(a,b)    用于生成一个指定范围内的随机浮点数,生成的随机整数a<=n<=b; random.randint(a,b)    用于生成一个指定范围内的整数,a为下限,…