K近邻算法(KNN)是指一个样本如果在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.即每个样本都可以用它最接近的k个邻居来代表.KNN算法适合分类,也适合回归.KNN算法广泛应用在推荐系统.语义搜索.异常检测. KNN算法分类原理图: 图中绿色的圆点是归属在红色三角还是蓝色方块一类?如果K=5(离绿色圆点最近的5个邻居,虚线圈内),则有3个蓝色方块是绿色圆点的“最近邻居”,比例为3/5,因此绿色圆点应当划归到蓝色方块一类:如果K=3(离…
K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一.K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果.该算法接受参数 k :然后将事先输入的n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高:而不同聚类中的对象相似度较小.聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的. 算法描述: 假设要把样本集分为c个类别…
一.kNN算法基础 # kNN:k-Nearest Neighboors # 多用于解决分裂问题 1)特点: 是机器学习中唯一一个不需要训练过程的算法,可以别认为是没有模型的算法,也可以认为训练数据集就是模型本身: 思想极度简单: 应用数学知识少(近乎为零): 效果少: 可以解释机械学习算法使用过程中的很多细节问题 更完整的刻画机械学习应用的流程: 2)思想: 根本思想:两个样本,如果它们的特征足够相似,它们就有更高的概率属于同一个类别: 问题:根据现有训练数据集,判断新的样本属于哪种类型: 方…
版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的每一个算法进行,并进行部分翻译,如有错误,请大家指正 ==============================================…
KNN K-Means 1.分类算法 聚类算法 2.监督学习 非监督学习 3.数据类型:喂给它的数据集是带label的数据,已经是完全正确的数据 喂给它的数据集是无label的数据,是杂乱无章的,经过聚类后才变得有点顺序,先无序,后有序 4.训练过程:没有明显的前期训练过程,属于memory-based learning 有明显的前期训练过程 5.K的含义:来了一个样本x,要给它分类,即求出它的y,就从数据集中,在x附近找离它最近的K个数据点,这K个数据点,类别c占的个数最多,就把x的label…
「Meissel-Lehmer 算法」是一种能在亚线性时间复杂度内求出 \(1\sim n\) 内质数个数的一种算法. 在看素数相关论文时发现了这个算法,论文链接:Here. 算法的细节来自 OI wiki,转载仅作为学习使用. 目前先 mark 一下这个算法,等有空的时候再来研究一下,算法的时间复杂度为 \(\mathcal{O}(n^{\frac23})\) ,所以 \(n\) 的范围可以扩大至 \(10^{12}\) 的级别: 代码实现 #include <bits/stdc++.h>…
前言: 处理器读取陀螺仪加速度计数据后首先需要对数据进行滤波处理,此文分析比较几种常用的滤波算法. 参考学习:四轴加速度计滤波 IMU: IMU使用MPU9250(即MPU6500),设置加速度量程±8G,陀螺仪±2000dps,数字低通滤波设置42Hz. IMU采集频率:Crazepony 100Hz(10ms),匿名小四 1000Hz(1ms),圆点博士小四333Hz(3ms).本次测试使用250Hz(4ms). 在从传感器读取的原始数据滤波之前,一般需要进行零偏校准.一般陀螺仪需要上电校准…
一.概述 k-近邻算法采用测量不同特征值之间的距离方法进行分类. 工作原理:首先有一个样本数据集合(训练样本集),并且样本数据集合中每条数据都存在标签(分类),即我们知道样本数据中每一条数据与所属分类的对应关系,输入没有标签的数据之后,将新数据的每个特征与样本集的数据对应的特征进行比较(欧式距离运算),然后算出新数据与样本集中特征最相似(最近邻)的数据的分类标签,一般我们选择样本数据集中前k个最相似的数据,然后再从k个数据集中选出出现分类最多的分类作为新数据的分类. 二.优缺点 优点:精度高.对…
——参考自<算法图解> def findSmallest(arr): # 假设第一个元素最小 smallest = arr[0] smallest_index = 0 for i in range(1,len(arr)): if arr[i] < smallest: smallest = arr[i] smallest_index = i return smallest_index def selectionSort(arr): newArr = [] for i in range(le…
——参考自<算法图解> 我们假设需要查找的数组是有序的(从大到小或者从小到大),如果无序,可以在第四行后插入一句 my_list.sort() 完整代码如下 def binary_search(my_list, item): # low和high用于跟踪要在其中查找到的列表的部分 low = 0 high = len(my_list)-1 while low <= high: mid = (low+high)//2 # 地板除,保证mid为整数 guess = my_list[mid]…