KNNK注册过商标注册分类45类明细吗?还有哪些分类可以注册?

3Dmax9.0 申请号: UVLR ULAR 7G97 FEN5 AVSH KNNK 序列号:000- ,请问下i激活码是多少啊_百度知道
3Dmax9.0 申请号: UVLR ULAR 7G97 FEN5 AVSH KNNK 序列号:000- ,请问下i激活码是多少啊
我有更好的答案
666-LFJE9J6SEG2HHCNE J4KSKXTSSKA8942W
不会吧?注册机算的~,申请号变了没有?还有你的事3ds max 2009的还是 3ds max 9?
是3ds max 9
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。KNN分类算法及MATLAB程序与结果
KNN算法的决策过程
  k-Nearest Neighbor algorithm
  右图中,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。
  K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相
似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决 策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方 法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
  KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比。
  该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量 很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。因此可以采用权值的方法(和该样本距离小的邻居权值大)来改进。该方法 的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样 本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误
相比于之前介绍的SVM及BP算法,KNN算法思想比较简单,它没有训练出模板model,然后利用model进行测试的过程,而是直接就是训练,利用已知的有标记的样本,进来一个样本就计算它与这些已知样本的距离,然后对这些距离中挑K个最小的进行投票,看K个最接近的样本中哪一个样本所占的个数多,就判断为哪一类。
前面也提到了KNN算法的一个当样本不平衡时,如一个类的样本容量很大,而其他类样本容量 很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数,为此我觉得可以在每类中随机抽取相同的样本数进行重组成新的样本,然后再进行KNN算法,记为改进方法1,或者调节距离的权重,距离越小的投票时的权重值就越大,记为改进方法2。下面是KNN算法的MATLAB代码,及没有用随机抽样的方法进行的试验结果(三类数据分别为150
50 50),和改进方法1,及改进方法2的结果对比。
未改进的结果,由于其中一类样本是150个,其他两类是50,所以数据有偏斜,结果为:
整体分类精度为:0.90476
类别1的分类精度为:0.94118
类别2的分类精度为:0.58824
类别3的分类精度为:1
改进方法一,随机抽样组成新的样本,新样本中,各类的样本数相同。结果为:
整体分类精度为:0.94048
类别1的分类精度为:0.94118
类别2的分类精度为:0.76471
类别3的分类精度为:1
改进方法二,增大最小距离的投票权重,当然也可能是我的权重选的不合适,结果为:
整体分类精度为:0.90476
类别1的分类精度为:0.94118
类别2的分类精度为:0.58824
类别3的分类精度为:1
可见和没加权重的未改进结果相同,当然我也试过好多数值,如果不当,精度还会下降。
把改进方法一和改进方法二相结合的结果:
整体分类精度为:0.90476
类别1的分类精度为:0.94118
类别2的分类精度为:0.76471
类别3的分类精度为:0.94
只是类别三的精度相对于改进方法一有所下降,所以看来还是样本数据的分均匀程度对分类的结果影响比较大。
下面是程序的源代码:
load D:\硕士学习资料3\硕士毕设资料\区域生长等分割算法程序\遗传分割\MYGAseg\特征选择\traindata.mat
load D:\硕士学习资料3\硕士毕设资料\区域生长等分割算法程序\遗传分割\MYGAseg\特征选择\testdata.mat
load D:\硕士学习资料3\硕士毕设资料\区域生长等分割算法程序\遗传分割\MYGAseg\特征选择\trainlabel.mat
load D:\硕士学习资料3\硕士毕设资料\区域生长等分割算法程序\遗传分割\MYGAseg\特征选择\testlabel.mat
traindata=traindata(1:99,:);
trainlabel=trainlabel(1:99,1);
[predictlabel,acc]=myKNN(traindata,trainlabel,testdata,testlabel,15);
function [predictlabel,acc]=myKNN(traindata,trainlabel,testdata,testlabel,K)
[mtrain,ntrain]=size(traindata);
[mtest,ntest]=size(testdata);
juli=zeros(mtest,mtrain);%每一行存储的是一个样本与所有训练样本的距离
sortjuli=zeros(mtest,mtrain);
zuobiaojuli=zeros(1,mtest);
rightnum=0;%记录整体分类正确的个数
rightnum1=0;
rightnum2=0;
rightnum3=0;
for i=1:mtest
for j=1:mtrain
juli(i,j)=sqrt((sum(testdata(i,:)-traindata(j,:)).^2));%计算每个测试样本与每个训练样本的oushi距离
for i=1:mtest
[ sortjuli,zuobiaojuli]=sort(juli(i,:));%sort函数默认返回的是由小到大的排序结果
sorttrainlabel=trainlabel(zuobiaojuli);%标签也相应的改变顺序
ksortjuli(1,:)=sortjuli(1,1:K);%取距离和坐标的前k个
ksorttrainlabel=sorttrainlabel(1:K,1);
for j=1:K%统计前K个结果中那个的数目多
if j==1%如果是排在第一位的,也就是距离最小的,那么投票权重加大4
ksorttrainlabel(j,1)==1
num1=num1+5;
ksorttrainlabel(j,1)==2
num2=num2+5;
ksorttrainlabel(j,1)==3
num3=num3+5;
elseif j==2%排在第二位的权重加大2,当然也可以自行改变
ksorttrainlabel(j,1)==1
num1=num1+2;
ksorttrainlabel(j,1)==2
num2=num2+2;
ksorttrainlabel(j,1)==3
num3=num3+2;
ksorttrainlabel(j,1)==1
num1=num1+1;
ksorttrainlabel(j,1)==2
num2=num2+1;
ksorttrainlabel(j,1)==3
num3=num3+1;
A=[num1 num2 num3];
Xsort=sort(A);%按照从小到大排序
if Xsort(1,end)==num1
predictlabel(i,1)=1;
elseif Xsort(1,end)==num2
predictlabel(i,1)=2;
elseif Xsort(1,end)==num3
predictlabel(i,1)=3;
if predictlabel(i,1)==testlabel(i,1)
rightnum=rightnum+1;
if predictlabel(i,1)==testlabel(i,1)&&testlabel(i,1)==1
rightnum1=rightnum1+1;
if predictlabel(i,1)==testlabel(i,1)&&testlabel(i,1)==2
rightnum2=rightnum2+1;
if predictlabel(i,1)==testlabel(i,1)&&testlabel(i,1)==3
rightnum3=rightnum3+1;
num1=0;%清0
leibie1=size(find(testlabel==1),1);%找出测试样本1的个数
leibie2=size(find(testlabel==2),1);
leibie3=size(find(testlabel==3),1);
acc1=rightnum1/leibie1;
acc2=rightnum2/leibie2;
acc3=rightnum3/leibie3;
acc=rightnum/%总体分类精度
disp(['整体分类精度为:',num2str(acc)]);
disp(['类别1的分类精度为:',num2str(acc1)]);
disp(['类别2的分类精度为:',num2str(acc2)]);
disp(['类别3的分类精度为:',num2str(acc3)]);
K最邻近密度估计技术是一种分类方法,不是聚类方法。
不是最优方法,实践中比较流行。
通俗但不一定易懂的规则是:
1.计算待分类数据和不同类中每一个数据的距离(欧氏或马氏)。
2.选出最小的前K数据个距离,这里用到选择排序法。
3.对比这前K个距离,找出K个数据中包含最多的是那个类的数据,即为待分类数据所在的类。
不通俗但严谨的规则是:
给定一个位置特征向量x和一种距离测量方法,于是有:
1.在N个训练向量外,不考虑类的标签来确定k邻近。在两类的情况下,k选为奇数,一般不是类M的倍数。
2.在K个样本之外,确定属于wi,i=1,2,...M类的向量的个数ki,显然sum(ki)=k。
3.x属于样本最大值ki的那一类wi。
没有更多推荐了,840 次阅读
标签:至少1个,最多5个
今天介绍另一种分类算法,k邻近算法( k-nearest neighbors ),即 KNN 算法。
Cover 和 Hart 在 1968 年提出了最初的邻近算法,用于解决分类( classification )的问题。关于这个算法在维基百科中也有介绍: 。
KNN是一种基于实例学习( instance-based learning ),或者所是将所有计算推迟到分类之后的惰性学习( lazy learning )的一种算法,KNN是所有机器学习算法中最简单算法之一。
从案例中说起
一个有关电影分类的例子:
这个一个根据打斗次数和接吻次数作为特征来进行类型的分类。最后一条的记录就是待分类的数据。
KNN这个分类过程比较简单的一个原因是它不需要创建模型,也不需要进行训练,并且非常容易理解。把例子中打斗次数和接吻次数看成是x轴和y轴,那么就很容易能建立一个二维坐标,每条记录都是坐标中的点。对于未知点来说,寻找其最近的几个点,哪种分类数较多,未知点就属于哪一类。
KNN算法的思路是: 如果一个样本在特征空间中的 k 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。通常 K 的取值比较小,不会超过 20。
算法步骤为:
计算未知实例到所有已知实例的距离;
选择参数 K;
根据多数表决( majority-voting )规则,将未知实例归类为样本中最多数的类别。
距离的衡量方法
关于距离的测量方式有多种,这里只介绍两种。
欧拉距离这种测量方式就是简单的平面几何中两点之间的直线距离。
并且这种方法可以延伸至三维或更多维的情况。它的公式可以总结为:
d(x,y) = \sqrt{\sum_{i=0}^n(x_i-y_i)^2}
曼哈顿距离顾名思义,城市街区的距离就不能是点和点的直线距离,而是街区的距离。如棋盘上也会使用曼哈顿距离的计算方法:
d(x,y) = \sqrt{\sum_{i=0}^n|x_i-y_i|}
K 值的选择
K值的选择会影响结果,有一个经典的图如下:
图中的数据集是良好的数据,即都打好了 label ,一类是蓝色的正方形,一类是红色的三角形,那个绿色的圆形是待分类的数据。
= 3 时,范围内红色三角形多,这个待分类点属于红色三角形。
= 5 时,范围内蓝色正方形多,这个待分类点属于蓝色正方形。
如何选择一个最佳的K值取决于数据。一般情况下,在分类时较大的 K 值能够减小噪声的影响,但会使类别之间的界限变得模糊。因此 K 的取值一般比较小 ( K & 20 )。
在下面一种情况中:
在点Y的预测中,改范围内三角形分类数量占优,因此将Y点归为三角形。但是从视觉上观测,应该是分为圆形分类更为合理。根据这种情况就在距离测量中加上权重,比如 1/d (d: 距离)。
KNN 的优缺点
简单,易于理解,无需建模与训练,易于实现;
适合对稀有事件进行分类;
适合与多分类问题,例如根据基因特征来判断其功能分类,kNN比SVM的表现要好。
惰性算法,内存开销大,对测试样本分类时计算量大,性能较低;
可解释性差,无法给出决策树那样的规则。
0 收藏&&|&&0
你可能感兴趣的文章
你可能感兴趣的文章
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。K-最近邻分类方法(KNN,k-nearest-neighbor classifier)是一种惰性学习法,所谓惰性就是KNN不像一些算法(比如SVM)一样在接收待分类数据前就已经根据训练数据构造好了分类模型,而是会在接受到训练数据后,只是对训练数据进行简单的存储,并不构造分类模型,在接受到待分类数据时,KNN通过计算待分类数据X与所有训练数据之间的距离,选择前K个距离X最近的数据,并将这K个距离最近的数据中出现次数最多的类属性赋给X。如下图所示,判断图中待分类数据绿色圆点的分类情况:
当K取3时,此时离待分类数据绿色圆点最近的5个数据中,包含2个红色三角和1个蓝色四边形,出现次数多的红色三角的类属性将会赋给此待分类数据。
当K取5时,此时离待分类数据绿色圆点最近的5个数据中,仍包含2个红色三角,但是蓝色四边形数目增加到3个,3&2,所以,出现次数多的蓝色四边形的类属性将会赋给此待分类数据。
knnclassify函数
在matlab中,关于KNN分类的函数为knnclassify,Class=knnclassify(Sample,Training,Group,k,distance,rule),其中输入参数分别为
1、Sample:待分类数据,其列数(特征数)要与训练数据相同。
2、Training:训练数据,M*N,M(行)为数据个数,N(列)为特征数。
3、Group:训练数据所对应的类属性。
4、k:分类中,最近邻的个数,默认为1.
5、distance:计算数据间距离的方法,有以下几种选择:
(1)euclidean:欧几里得距离(默认值)
(2)cityblock:曼哈顿(或城市块)距离
(3)cosine:余弦距离
(4)correlation:相关距离
(5)hamming:海明距离
这些距离方式实际上是采用不同的函数来计算两个数据对象之间的距离,例如:
对于两个被p个特征描述的数据对象 i=(Xi1,Xi2,……,Xip)和j=(Xj1,Xj2,……,Xjp),他们的欧几里得距离为:
d(i,j)=(Xi1-Xj1)2+(Xi2-Xj2)2+......+(Xip-Xjp)2-----------------------------------------√
他们的曼哈顿(或城市块)距离为:
d(i,j)=|Xi1-Xj1|+|Xi2-Xj2|+......+|Xip-Xjp|
6、rule:确定类属性的规则,有以下几种选择:
(1) nearest : 最近的K个的最多数(默认值)
(2) random : 随机的最多数
(3) consensus: 投票法
(1)选取k=1,diatance=’cityblock’,rule=’nearest’
function [ classfication ] = KNN2_1( train,test )
load fisheriris
meas=meas(1:100,1:2)
train=[(meas(1:40,:));(meas(51:90,:))];
test=[(meas(41:50,:));(meas(91:100,:))];
trainGroup=[ones(1,40),2*ones(1,40)]';
testGroup=[ones(1,10),2*ones(1,10)]';
class=knnclassify(test,train,trainGroup,1,'cityblock','nearest');
testGroup=[ones(1,10),2*ones(1,10)]';
plot(testGroup,'o');
plot(class,'*');
legend('测试集正确分类','KNN分类结果');
disp(class);
for i=(1:20)
if class(i)==testGroup(i)
count=count+1;
fprintf('分类精度为:%f\n' ,count/20);
当改变knnclassify函数参数为:k=5,distance=’euclidean’,rule=’nearest’时,获得的实验结果如下图:
主要存在的问题
KNN分类法最大的优点是思想简单,容易理解,并且不需要训练分类模型,同时,对于多分类问题,KNN分类较其他方法也更简单,还是一样的根据距离来判断。
虽然KNN不需要训练模型,但其在对数据分类时的计算量却很大,因为每一个待分类的数据与训练数据的距离都要计算,并且当训练数据中各类别数据的个数差距较大时,在类别判定时,由于某类的数据个数太多,在总体训练数据中分布比较密集,对于一个待分类的数据来说,在它的K个最近邻居中,数据个数多的类别更容易占优势,从而影响了分类结果。再有就是K值得选择问题,如果K值太小,得到的最近邻数据太少,对分类精度会有影响,如果K值太大,那么像上面所说的‘各类别数据个数差距较大而影响分类结果’的问题就会被放大。
(1)对于计算量大的问题,我们可以通过减少特征个数,只选择部分区别性能强的特征来作为分类数据的特征值,再有就是由于计算距离时,需要计算待分类数据与所有训练数据的距离,我们还可以减少训练数据的数量,只保留部分与分类相关较大的训练数据。
(2)再有就是在计算距离时,通过对不同的特征设置不同的权重值,对不同距离的邻居设置不同的权重值的方法来改进KNN方法中所有特征对距离的作用相同的缺陷以及不同距离的邻居对类别的判定作用相同的缺陷。
(3)K值得选择,很大程度影响分类的效果,可以采用交叉检验来确定K值。
相关标签/搜索网站已改版,请使用新地址访问:
knnclassification 这是一个KNN分类器的matlab函数(K近邻 ),可自由选择参数k
272万源代码下载- www.pudn.com
&文件名称: knnclassification& & [
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 1 KB
&&上传时间:
&&下载次数: 69
&&提 供 者:
&详细说明:这是一个KNN分类器的matlab函数(K近邻分类器),可自由选择参数k-it s a KNN classifier program of the matlab
,you can chose the parameter k to conduct the classify procedure
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&knnclassification.m
&[]:纯粹是垃圾
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站272万海量源码库中尽情搜索:
&[] - 文件为为本分类器,可以实现切词、特征选择、权重计算等功能
&[] - K近邻算法在Matlab中的实现,相当完整,对研究KNN算法有一定帮助
&[] - K近邻法的matlab程序,发现大家都在找它!
&[] - Gabor+PCA的人脸表情识别程序,基于OpenCV实现的
&[] - 对随机选择的iris数据,用LDA进行特征提取,然后用K近邻分类器分类的完整程序
&[] - k近邻算法的matlab程序实现,注释详尽,通俗易懂,适合初学者

我要回帖

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

 

随机推荐