简单实现KNN(处理连续型数据)】的更多相关文章

import numpy as np import matplotlib.pyplot as plt import time import math import collections raw_data_x = [[3.39,2.33], [3.11,1.78], [1.34,3.36], [3.58,4.67], [2.28,2.86], [7.442,4.69], [5.74,3.53], [9.17,2.51], [7.79,3.42], [7.93,0.79] ] raw_data_y…
__author__ = '糖衣豆豆' from numpy import * from os import listdir import operator #从列方向扩展 #tile(a,(size,1)) #实现KNN算法,需要指定k,需要测试数据集,需要训练数据集,类别名(标签), def knn(k,testdata,traindata,labels): #通过shape获得行数 traindatasize=traindata.shape[0] #扩展testdata的维数,tile函数…
原理:计算当前点(无label,一般为测试集)和其他每个点(有label,一般为训练集)的距离并升序排序,选取k个最小距离的点,根据这k个点对应的类别进行投票,票数最多的类别的即为该点所对应的类别.代码实现(数据集采用的是iris): import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn import n…
二值化 设置一个condition,把连续型的数据分类两类.比如Age,大于30,和小于30. from sklearn.preprocessing import Binerize as Ber x = data_2.iloc[:,0].values.reshpe(-1,1) #提取数据 trans = Ber(threshold = 30).fit_transform(x) trans 这是x中>30的设置为1,其他的设置为0. 标签 有时数据可能需要对数据进行分箱化处理,或者给不同的数据设置…
from numpy import * import operator def createDataSet(): group = array([[3,104],[2,100],[1,81],[101,10],[99,5],[98,2]]) labels = ['爱情片','爱情片','爱情片','动作片','动作片','动作片'] return group, labels def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.…
连续登陆活动,或许大家都不会陌生,简单理解就是用户连续登陆了多少天之后,系统就会送一些礼品给相应的用户.最常见的 莫过于游戏和商城这些.游戏就送游戏币之类的东西,商城就送一些礼券.正值国庆,应该也有不少类似的活动. 下面就对这个的实现提供两个思路,并提供解决方案. 思路1(以用户为维度): 连续登陆活动,必然是要求连续登陆,不能有间隔.用1表示登陆,0表示没有登陆,这样我们可以为每个用户创建一个key去存储 他的登陆情况,就可以得到类似这样的一个二进制序列:1110111,如果是7个1,就表示连…
版权所有,可以转载,禁止修改.转载请注明作者以及原文链接. 一.KNN算法概述 KNN是Machine Learning领域一个简单又实用的算法,与之前讨论过的算法主要存在两点不同: 它是一种非参方法.即不必像线性回归.逻辑回归等算法一样有固定格式的模型,也不需要去拟合参数. 它既可用于分类,又可应用于回归. KNN的基本思想有点类似“物以类聚,人以群分”,打个通俗的比方就是“如果你要了解一个人,可以从他最亲近的几个朋友去推测他是什么样的人”. 在分类领域,对于一个未知点,选取K个距离(可以是欧…
改章节笔者在深圳喝咖啡的时候突然想到的...之前就有想写几篇关于算法代码的文章,所以回家到以后就奋笔疾书的写出来发表了 前一段时间介绍了Kmeans聚类,而KNN这个算法刚好是聚类以后经常使用的匹配技巧.我们都知道python中有Numby和Scipy这两个库,还有前段时间写的matplot库,绘图用的,大家可以参考下,实际这个算法是看懂之前的一些算法的实现. 上面我就简单介绍下这个算法实现,首先我们先肯定一个事前准备好的矩阵,这个多是事前聚类出来的或者通过专家估计出来的值. 为了这个分类矩阵和…
K近邻算法思想非常简单,总结起来就是根据某种距离度量检测未知数据与已知数据的距离,统计其中距离最近的k个已知数据的类别,以多数投票的形式确定未知数据的类别. 一直想自己实现knn的java实现,但限于自己的编程水平,java刚刚入门,所以就广泛搜索网上以实现的java代码来研习.下面这个简单的knn算法的java实现是在这篇博客中找到的:http://blog.csdn.net/luowen3405/article/details/6278764 下面给出我对代码的注释,如果有错误请指正. 源程…
初学Python:理解机器学习. 算法是需要实现的,纸上得来终觉浅. // @author: gr // @date: 2015-01-16 // @email: forgerui@gmail.com 一.简单的KNN from numpy import * import operator def createDataSet(): group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]]) labels = ['A', 'A', 'B',…