KNNNS注册过商标注册分类表吗?还有哪些分类可以注册?

本视频由声明原创。Knnr.info - knnr Details
Knnr.info -
When pulling the information for Knnr.info, we found that the IP-based Geolocation is
Japan, More details for Knnr.info are displayed if available at the date of your request: [Update time:
A more detailed IP address report for Knnr.info is below. At the time you pulled this report, the IP of Knnr.info is 157.7.184.36 and is located in the time zone of Asia/Tokyo.
The context of Knnr.info is "knnr" and could reflect the theme of the content available on the resource. You can get information of this website. Also, you can use Google search .
More IP details of Knnr.info are shown below along with a map location. You can get more about knnr.
Knnr.info - knnr IP lookup [IP:157.7.184.36]
Hostnameknnr.info
IP Address157.7.184.36
Country/AreaJapan
ContinentAsia
Time zoneAsia/Tokyo
Local time
Our Most Popular ToolsKNN (k-nearest neighbor classification) - 简书
KNN (k-nearest neighbor classification)
K-近邻算法(KNN)概述
最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个测试对象同时与多个训练对象匹配,导致一个训练对象被分到了多个类的问题,基于这些问题呢,就产生了KNN。
KNN是通过测量不同特征值之间的距离进行分类。它的的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
下面通过一个简单的例子说明一下:如下图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。
由此也说明了KNN算法的结果很大程度取决于K的选择。
在KNN中,通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之间的匹配问题,在这里距离一般使用欧氏距离或曼哈顿距离:
同时,KNN通过依据k个对象中占优的类别进行决策,而不是单一的对象类别决策。这两点就是KNN算法的优势。
接下来对KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:
1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点;
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。
简单,易于理解,易于实现,无需估计参数,无需训练
适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)
特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好
懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢
可解释性较差,无法给出决策树那样的规则。
1、k值设定为多大?
k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。(对距离加权,可以降低k值设定的影响)
k值通常是采用交叉检验来确定(以k=1为基准)
经验规则:k一般低于训练样本数的平方根
2、类别如何判定最合适?
投票法没有考虑近邻的距离的远近,距离更近的近邻也许更应该决定最终的分类,所以加权投票法更恰当一些。
3、如何选择合适的距离衡量?
高维度对距离衡量的影响:众所周知当变量数越多,欧式距离的区分能力就越差。
变量值域对距离的影响:值域越大的变量常常会在距离计算中占据主导作用,因此应先对变量进行标准化。
4、训练样本是否要一视同仁?
在训练集中,有些样本可能是更值得依赖的。
可以给不同的样本施加不同的权重,加强依赖样本的权重,降低不可信赖样本的影响。
5、性能问题?
kNN是一种懒惰算法,平时不好好学习,考试(对测试样本分类)时才临阵磨枪(临时去找k个近邻)。
懒惰的后果:构造模型很简单,但在对测试样本分类地的系统开销大,因为要扫描全部训练样本并计算距离。
已经有一些方法提高计算的效率,例如压缩训练样本量等。
6、能否大幅减少训练样本量,同时又保持分类精度?
浓缩技术(condensing)
编辑技术(editing)
使用 sklearn 进行算法使用
对地形进行分类
#!/usr/bin/python
import matplotlib.pyplot as plt
from prep_terrain_data import makeTerrainData
from class_vis import prettyPicture
from time import time
features_train, labels_train, features_test, labels_test = makeTerrainData()
### the training data (features_train, labels_train) have both "fast" and "slow"
### points mixed together--separate them so we can give them different colors
### in the scatterplot and identify them visually
grade_fast = [features_train[ii][0] for ii in range(0, len(features_train)) if labels_train[ii]==0]
bumpy_fast = [features_train[ii][1] for ii in range(0, len(features_train)) if labels_train[ii]==0]
grade_slow = [features_train[ii][0] for ii in range(0, len(features_train)) if labels_train[ii]==1]
bumpy_slow = [features_train[ii][1] for ii in range(0, len(features_train)) if labels_train[ii]==1]
#### initial visualization
plt.xlim(0.0, 1.0)
plt.ylim(0.0, 1.0)
plt.scatter(bumpy_fast, grade_fast, color = "b", label="fast")
plt.scatter(grade_slow, bumpy_slow, color = "r", label="slow")
plt.legend()
plt.xlabel("bumpiness")
plt.ylabel("grade")
plt.show()
################################################################################
### your code here!
name your classifier object clf if you want the
### visualization code (prettyPicture) to show you the decision boundary
from sklearn.neighbors import KNeighborsClassifier
clf = KNeighborsClassifier(n_neighbors=10,weights='distance')
t0 = time()
clf.fit(features_train,labels_train)
print "training time : " ,round(time()-t0,3),"s"
t1 = time()
pred = clf.predict(features_test)
print "predicting time : " ,round(time()-t1,3),"s"
from sklearn.metrics import accuracy_score
acc = accuracy_score(pred,labels_test)
print 'accuracy_score :',acc
prettyPicture(clf, features_test, labels_test)
except NameError:
prep_terrain_data.py
#!/usr/bin/python
import random
def makeTerrainData(n_points=1000):
###############################################################################
### make the toy dataset
random.seed(42)
grade = [random.random() for ii in range(0,n_points)]
bumpy = [random.random() for ii in range(0,n_points)]
error = [random.random() for ii in range(0,n_points)]
y = [round(grade[ii]*bumpy[ii]+0.3+0.1*error[ii]) for ii in range(0,n_points)]
for ii in range(0, len(y)):
if grade[ii]&0.8 or bumpy[ii]&0.8:
y[ii] = 1.0
### split into train/test sets
X = [[gg, ss] for gg, ss in zip(grade, bumpy)]
split = int(0.75*n_points)
X_train = X[0:split]
= X[split:]
y_train = y[0:split]
= y[split:]
grade_sig = [X_train[ii][0] for ii in range(0, len(X_train)) if y_train[ii]==0]
bumpy_sig = [X_train[ii][1] for ii in range(0, len(X_train)) if y_train[ii]==0]
grade_bkg = [X_train[ii][0] for ii in range(0, len(X_train)) if y_train[ii]==1]
bumpy_bkg = [X_train[ii][1] for ii in range(0, len(X_train)) if y_train[ii]==1]
training_data = {"fast":{"grade":grade_sig, "bumpiness":bumpy_sig}
, "slow":{"grade":grade_bkg, "bumpiness":bumpy_bkg}}
grade_sig = [X_test[ii][0] for ii in range(0, len(X_test)) if y_test[ii]==0]
bumpy_sig = [X_test[ii][1] for ii in range(0, len(X_test)) if y_test[ii]==0]
grade_bkg = [X_test[ii][0] for ii in range(0, len(X_test)) if y_test[ii]==1]
bumpy_bkg = [X_test[ii][1] for ii in range(0, len(X_test)) if y_test[ii]==1]
test_data = {"fast":{"grade":grade_sig, "bumpiness":bumpy_sig}
, "slow":{"grade":grade_bkg, "bumpiness":bumpy_bkg}}
return X_train, y_train, X_test, y_test
训练数据分布图
测试数据分类结果及决策面
training time :
predicting time :
accuracy_score : 0.94
github: https://github.com/Skyexu
注:题中所指的『机器学习』不包括『深度学习』。本篇文章以理论推导为主,不涉及代码实现。 前些日子定下了未来三年左右的计划,其中很重要的一点是成为一名出色的人工智能产品经理,说是要每月至少读一本人工智能相关书籍,现在一个半月过去了,书读了一些,资料也看了不少,算是小有所成,所...
机器学习实战之K-近邻算法(二) 2-1 K-近邻算法概述 简单的说,K-近邻算法采用测量不同特征值之间的距离方法进行分类。 K-近邻算法 优点:精度高、对异常值不敏感、无数据输入假定 缺点:计算复杂度高、空间复杂度高 适用数据范围:数值型和标称型 K-近邻算法(KNN),...
第2章 k-近邻算法 http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default&&& KNN 概述 k-近邻(kNN, k-NearestNeighbor)算法主要是用来进行分类的. KNN 场景 电影可...
KNN:K-Nearest Neighbor algorithm 本文转载自:http://blog.csdn.net/autocyz/article/details/ 问题 已知:存在一个数据集:数据集个数为n,且存在标签,即这些数据都已经分好类。现在又进...
感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定! 在机器学习和数据挖掘常用的方法中,常规的建模思路是输入给定的训练数据集(类别标签已知),通过一系列的训练建立预测模型,通过将需要预...
第四十八章
武侠 清扫过个人卫生,我和陈慕远站在浴室门外的落地镜前整理衣服,陈慕远用手打理自己还未干的长发,镜子中的两个人一个彪悍,一个瘦弱。我用手扯了下自己的头发,该理发了。 “一会儿你先过去,我去理发,这几个月只顾着看书,头发都没理。”我对陈慕远说,“我用用刮胡刀。...
七岁的我 从北方夏日的炙烤中 流着热汗跑 进阴凉的客厅 端起一碗白水 喝下去 事后证明 那是父亲的一碗酒 那碗酒足足醉了我 一个下午 外加一个晚上 以至于 现在我每每写诗 父亲都调侃 是那碗酒 招来了 诗仙
最近两天用精油有了一点点灵感,妈妈这几天肩膀很僵硬,感觉手臂没力气,要我帮忙按摩,我想着妈妈的症状,用左手帮妈妈摸了一只水精油,后来去查配方和功效,里面有迷迭香和罗勒,这两只都是唇形科,有通经络的作用,松科里面的雪松有通血液的作用,太对症了,妈妈按摩完有了些微的改善!朋友头...
苏世独步,横而不流。 敢问苍天,谁主沉浮。本视频由声明原创。机器学习实战之KNN算法 - 简书
机器学习实战之KNN算法
本系列教程为《机器学习实战》的读书笔记。首先,讲讲写本系列教程的原因:第一,《机器学习实战》的代码由Python2编写,有些代码在Python3上运行已会报错,本教程基于Python3进行代码的修订;第二:之前看了一些机器学习的书籍,没有进行记录,很快就忘记掉了,通过编写教程也是一种复习的过程;第三,机器学习相对于爬虫和数据分析而言,学习难度更大,希望通过本系列文字教程,让读者在学习机器学习的路上少走弯路。
本系列教程特点:
基于《机器学习实战》
尽量避免讲太多数学公式,通过简单直白的方式讲解各算法的原理
对于算法实现的代码进行详细讲解
哪些读者可以食用:
了解机器学习的基本术语
会Python语言
会numpy和pandas库的使用
k-近邻算法(KNN)原理
KNN算法为分类算法。一句老话来描述KNN算法:“近朱者赤,近墨者黑”。
算法原理:计算测试样本与每个训练样本的距离(距离计算方法见下文),取前k个距离最小的训练样本,最后选择这k个样本中出现最多的分类,作为测试样本的分类。
如图所示,绿色的为测试样本,当k取3时,该样本就属于红色类;当k取5时,就属于蓝色类了。所以k值的选择很大程度影响着该算法的结果,通常k的取值不大于20。
KNN算法原理
介绍完原理后,看看KNN算法的伪代码流程:
计算测试样本与所有训练样本的距离
对距离进行升序排序,取前k个
计算k个样本中最多的分类
KNN之约会对象分类
问题描述与数据情况
海伦使用约会网站寻找约会对象。经过一段时间之后,她发现曾交往过三种类型的人:
不喜欢的人
魅力一般的人
极具魅力的人
这里海伦收集了1000行数据,有三个特征:每年获得的飞行常客里程数;玩视频游戏所耗时间百分比;每周消费的冰淇淋公升数。以及对象的类型标签,如图所示。
import numpy as np
import operator
def file2matrix(filename):
fr = open(filename)
arrayOLines = fr.readlines()
numberOflines = len(arrayOLines)
returnMat = np.zeros((numberOflines, 3))
classLabelVector = []
for line in arrayOLines:
line = line.strip()
listFromLine = line.split('\t')
returnMat[index, :] = listFromLine[0:3]
classLabelVector.append(int(listFromLine[-1]))
index = index + 1
return returnMat, classLabelVector
定义解析数据的函数:4-9行:读取文件,并获取文件行数,创建一个文件行数(1000行)和3列的Numpy全0数组,创建用于存放类标签的classLabelVector列表。
10-17行:对文件进行循环遍历,对前三列数据存放到returnMat数组中,最后一列存放到classLabelVector列表中。结果如图所示。
上面的代码为书中所写,其实用pandas读取数据后再出来是很方便了,代码如下:
import numpy as np
import operator
import pandas as pd
def file2matrix(filename):
data = pd.read_table(open(filename), sep='\t', header=None)
returnMat = data[[0,1,2]].values
classLabelVector = data[3].values
return returnMat, classLabelVector
由于特征间的数值差别太大,在计算距离时,数值大的属性会对结果产生更大的影响,这里需要对数据进行归一化:new = (old-min)/(max-min)。代码如下:
def autoNorm(dataSet):
minval = dataSet.min(0)
maxval = dataSet.max(0)
ranges = maxval - minval
normDataSet = np.zeros(np.shape(dataSet))
m = dataSet.shape[0]
normDataSet = dataSet - np.tile(minval, (m,1))
normDataSet = normDataSet/np.tile(ranges, (m,1))
return normDataSet, ranges, minval
传入的参数为测试数据(就是returnMat);首先按0轴(也就是按列)进行min和max的计算,如图所示进行简单的示例;然后构造和数据(normDataSet)一样大小的0矩阵;
tile函数的用法读者可以自行百度,这里看下使用后的案例,作用就是让一维数组重复m行,如图所示,这样就可以进行数据归一化的计算。
这里使用的距离为欧式距离,公式为:
def classify(inX, dataSet, labels, k):
dataSize = dataSet.shape[0]
diffMat = np.tile(inX, (dataSize,1)) -dataSet
sqdiffMat = diffMat ** 2
sqDistance = sqdiffMat.sum(axis = 1)
distances = sqDistance ** 0.5
sortedDist = distances.argsort()
classCount ={}
for i in range(k):
voteIlable = labels[sortedDist[i]]
classCount[voteIlable] = classCount.get(voteIlable, 0) + 1
sortedClassCount = sorted(classCount.items(),
key=operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0]
inX为训练数据;dataSet为测试数据,labels为类别标签;k为取值;
2-6行:计算欧式距离
7-最后:对计算的距离进行索引排序(argsort),然后对字典进行排序,获取值最多的分类。
对分类器进行测试
这里选择前10%数据做为测试样本,进行分类器的测试。
def test():
X, y = file2matrix('数据/datingTestSet2.txt')
new_X, ranges, minval = autoNorm(X)
m = new_X.shape[0]
numTestVecs = int(m*r)
error = 0.0
for i in range(numTestVecs):
result = classify(new_X[i, :],new_X[numTestVecs:m, :], y[numTestVecs:m], 3)
print('分类结果: %d, 真实数据: %d' %(result, y[i]))
if (result != y[i]):
error = error + 1.0
print('错误率: %f' % (error/float(numTestVecs)))
最后,编写一个简单的测试系统,该代码通过人为的输入三个属性特征,可以自动得到该约会对象的分类标签。
def system():
style = ['不喜欢', '一般', '喜欢']
ffmile = float(input('飞行里程'))
game = float(input('游戏'))
ice = float(input('冰淇淋'))
X, y = file2matrix('数据/datingTestSet2.txt')
new_X, ranges, minval = autoNorm(X)
inArr = np.array([ffmile, game, ice])
result = classify((inArr - minval)/ranges, new_X, y, 3)
print('这个人', style[result - 1])
算法优缺点
优点:精度高,对异常值不敏感
缺点:计算复杂(想想每个测试样本都要与训练样本继续距离计算)
刚开始看,读者可能有所不适,多将代码敲几遍即可。欢迎大家点赞和留言,可在微博(是罗罗攀啊)与我互动哦。
罗攀,林学的研究僧
《从零开始学Python网络爬虫》作者
Python中文社区、Python爱好者社区专栏作者
个人微信公众号:罗罗攀,以后文章会在公众号首发,期待你的关注
BAT机器学习面试系列 1.请简要介绍下SVM。 SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。 扩展: 支持向量机学习方法包括构建由简至繁的模型:线性...
机器学习实战之K-近邻算法(二) 2-1 K-近邻算法概述 简单的说,K-近邻算法采用测量不同特征值之间的距离方法进行分类。 K-近邻算法 优点:精度高、对异常值不敏感、无数据输入假定 缺点:计算复杂度高、空间复杂度高 适用数据范围:数值型和标称型 K-近邻算法(KNN),...
第2章 k-近邻算法 http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default&&& KNN 概述 k-近邻(kNN, k-NearestNeighbor)算法主要是用来进行分类的. KNN 场景 电影可...
注:题中所指的『机器学习』不包括『深度学习』。本篇文章以理论推导为主,不涉及代码实现。 前些日子定下了未来三年左右的计划,其中很重要的一点是成为一名出色的人工智能产品经理,说是要每月至少读一本人工智能相关书籍,现在一个半月过去了,书读了一些,资料也看了不少,算是小有所成,所...
ok,今天花了一天时间看了小人书(机器学习实战),并且撸到了KNN算法,并完成了一个KNN算法的应用 真的!!!小人书是本特别不错的适合入门ML的书!!!!! 没有繁杂的数学推导过程,先给出概念和实战应用,等对ML有个大致了解后再去啃那些理论书,大量的代码真的很对胃口啊啊啊...
我是珍珠。 四年还是五年了,时间好多也好快啊,我已经忘记了许多的事情。现在的我按部就班、或者说迎刃有余的过着生活。 我有着自己固定的朋友,有着自己的喜好。每天我都像拥有着全世界一样快乐的活着,只不过不知道为什么现在的我仍然独自一人,每当我认识到这点的时候,又感觉全世界抛弃了...
一、本周共修的主题是: 1》今日事今日毕,回向给自己,建立对自己的信任感。为自己点赞。 ?带着觉知早瑜伽,把设备样品帮忙给朋友运走;答应妹妹的事中午前送去;一直想再看看文化街的房子今天也顺路看了。答应朋友的事已超出预期做到;按时业力伙伴见面;按时读书会(即使邻居邀请晚餐聚会...
它本在红尘外 因着佛缘 来到这世间 静看变幻的尘烟 时光在它身上安然舒卷 雕琢的一朵清水菡萏 濯而不妖,淤泥不染 一半流年如水,一半岁月恬淡 云落在湖心,它不见 风吹过麦田,它不见 鸟飞入云端,它不见 红尘醉客哭悲笑叹 它净水如止不起微澜 它是佛渡化的前缘 叶发千瓣 是佛历...
1 上午接到了北京法务部门的培训通知,下周将要在北京进行新的法务系统的workshop,之前做了两年多的法务担当也没赶上,这今年又开始了,哎哈哈不过对于下属是个好事情,可以出去看看,多认识下总部和其他公司的同事。这么立即安排下属把培训内容和预算情况整理下,去找副总报告出差的...}

我要回帖

更多关于 商标注册分类明细 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信