标签: knn

如何有效地找到分类器的准确性

即使使用像最近邻居这样的简单分类器,我也无法判断其准确性,因而无法改善它.

例如,使用以下代码:

IDX = knnsearch(train_image_feats, test_image_feats);
    predicted_categories = cell([size(test_image_feats, 1), 1]);
    for i=1:size(IDX,1)
        predicted_categories{i}=train_labels(IDX(i));
    end
Run Code Online (Sandbox Code Playgroud)

train_image_feats是一个300乘256的矩阵,其中每行代表一个图像.同样是结构test_image_feats.train_labels是与训练矩阵的每一行对应的标签.

我所遵循的书只是说上述方法达到了19%的准确率.

作者是如何得出这个结论的?有没有办法用这个分类器或其他来判断我的结果的准确性?

然后,作者使用另一种特征提取方法,并将其准确度提高了30%.

我怎样才能找到准确度?无论是图形还是仅通过一个简单的百分比.

matlab classification machine-learning image-processing knn

3
推荐指数
1
解决办法
4544
查看次数

OpenCV C++ 中的 createBackgroundSubtractorKNN 参数是什么?

我需要对参数的解释

createBackgroundSubtractorKNN(int history=500, double dist2Threshold=400.0, bool detectShadows=true)
Run Code Online (Sandbox Code Playgroud)

history、dist2Threshold 和 detectShadows 如何影响背景减法器?

c++ opencv knn

3
推荐指数
1
解决办法
2947
查看次数

计算训练集的混淆矩阵

我是机器学习的新手。最近,我已经学会了如何计算confusion_matrixTest setKNN Classification。但我不知道,如何计算confusion_matrixTraining setKNN Classification

我如何可以计算confusion_matrixTraining setKNN Classification从下面的代码?

下面的代码是用于计算confusion_matrixTest set

# Split test and train data
import numpy as np
from sklearn.model_selection import train_test_split
X = np.array(dataset.ix[:, 1:10])
y = np.array(dataset['benign_malignant'])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

#Define Classifier
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors = 5, metric = 'minkowski', p = …
Run Code Online (Sandbox Code Playgroud)

python machine-learning knn cross-validation

3
推荐指数
1
解决办法
6573
查看次数

colMeans(x, na.rm = TRUE) 中的错误:“x”在 KNN 分类中必须是数字

我有以下代码来尝试在分类模型中使用 knn:

library(dplyr)
library(e1071)
library(ggplot2)
library(nnet)
library(DMwR)
library(rpart.plot)
library(class)

dat         <- read.csv("C:/Users/Ze/Desktop/HallowSet/train.csv",header = T,stringsAsFactors = F)

needToSolve <- read.csv("C:/Users/Ze/Desktop/HallowSet/test.csv",header = T,stringsAsFactors = F)

dat$color <- factor(dat$color)
dat$type  <- factor(dat$type)

sp    <- sample(1:nrow(dat),0.7*nrow(dat))
train <- dat[sp,]
test  <- dat[-sp,]
full  <- rbind(train,test)



pre <-kNN(type ~ .,train ,test,k=3,norm=TRUE,type='class')
Run Code Online (Sandbox Code Playgroud)

但是当代码到达下一行时,我得到一个 colMeans(x, na.rm = TRUE) : 'x' 必须是数字,我不知道为什么会发生这种情况以及如何解决它,有人可以告诉我吗?谢谢提前。

字符串(完整):

'data.frame':   259 obs. of  12 variables:
$ id           : int  62 699 23 172 701 70 809 393 465 839 ...
$ bone_length  : num …
Run Code Online (Sandbox Code Playgroud)

runtime-error r knn

3
推荐指数
1
解决办法
1万
查看次数

scikit-learn 的 KNN 如何计算概率估计?

scikit learn 中 KNN 算法的实现如何计算该predict_proba(X)方法的概率估计?

python knn scikit-learn

3
推荐指数
1
解决办法
2042
查看次数

ANN,SVM和KNN分类器之间有什么区别?

我知道这是一个非常普遍的问题,没有关于我的实际项目的细节,但我的问题是:

我正在进行遥感图像分类.我使用的是面向对象的方法:首先我将图像分割到不同的区域,然后从颜色,形状和纹理等区域中提取特征.一个区域中所有要素的数量可能是30个,通常总共有2000个区域,我将选择5个类别,每个类别有15个样本.

综上所述:

  • 样本数据1530
  • 测试数据197530

如何选择合适的分类器?如果有3个分类器(ANN,SVM和KNN),我应该选择哪个更好的分类?

class image-processing svm knn

2
推荐指数
1
解决办法
1万
查看次数

如何为 knn 模型绘制 ROC 曲线

我正在使用 ROCR 包,我想知道如何在 R 中为 knn 模型绘制 ROC 曲线?有没有办法用这个包来绘制这一切?

不知道怎么用knn的ROCR的预测功能。这是我的示例,我使用来自 UCI 存储库的 isolet 数据集,我将类属性重命名为 y:

cl<-factor(isolet_training$y)
knn_isolet<-knn(isolet_training, isolet_testing, cl, k=2, prob=TRUE)
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,传递给 ROC 预测函数的参数是什么。我尝试了以下两种不起作用的替代方法:

library(ROCR)
pred_knn<-prediction(knn_isolet$y, cl)
pred_knn<-prediction(knn_isolet$y, isolet_testing$y)
Run Code Online (Sandbox Code Playgroud)

r knn roc

2
推荐指数
1
解决办法
2万
查看次数

在Matlab中为KNN选择k

我目前正在使用Matlab的k最近邻分类器(knnclassify)来训练和测试二进制属性.如果没有提供k,则k的默认值参数为1,并且可以选择k的其他值.我已经完成了在线研究和stackoverflow研究,但是没有任何相关内容可以解决我的问题,即k的最佳用途是什么.是否有内置函数可以告诉我对于我的特定数据,还是只是猜测并等待看到的精度是什么?任何帮助将不胜感激.

以下是matlab的knnclassify文档的链接:knnclassify

matlab classification knn

2
推荐指数
1
解决办法
2419
查看次数

在Spark中广播“烦人”对象(针对最近的邻居)?

由于Spark的mllib不具有最近邻居功能,因此我尝试将Annoy用于近似最近邻居。我尝试广播Annoy对象并将其传递给工作人员。但是,它没有按预期运行。

以下是可再现性的代码(将在PySpark中运行)。在将Annoy与不带Spark搭配使用时,看到的差异突出了问题。

from annoy import AnnoyIndex
import random
random.seed(42)

f = 40
t = AnnoyIndex(f)  # Length of item vector that will be indexed
allvectors = []
for i in xrange(20):
    v = [random.gauss(0, 1) for z in xrange(f)]
    t.add_item(i, v)
    allvectors.append((i, v))
t.build(10) # 10 trees

# Use Annoy with Spark
sparkvectors = sc.parallelize(allvectors)
bct = sc.broadcast(t)
x = sparkvectors.map(lambda x: bct.value.get_nns_by_vector(vector=x[1], n=5))
print "Five closest neighbors for first vector with Spark:",
print x.first()

# Use Annoy …
Run Code Online (Sandbox Code Playgroud)

python nearest-neighbor knn apache-spark pyspark

2
推荐指数
2
解决办法
1716
查看次数

SMOTE初始化期望n_neighbors &lt;= n_samples,但n_samples &lt;n_neighbors

我已经预先清理了数据,下面显示了前4行的格式:

     [IN] df.head()

    [OUT]   Year    cleaned
         0  1909    acquaint hous receiv follow letter clerk crown...
         1  1909    ask secretari state war whether issu statement...
         2  1909    i beg present petit sign upward motor car driv...
         3  1909    i desir ask secretari state war second lieuten...
         4  1909    ask secretari state war whether would introduc...
Run Code Online (Sandbox Code Playgroud)

我已将train_test_split()称为如下:

     [IN] X_train, X_test, y_train, y_test = train_test_split(df['cleaned'], df['Year'], random_state=2)
   [Note*] `X_train` and `y_train` are now Pandas.core.series.Series of shape (1785,) and `X_test` and `y_test` are also …
Run Code Online (Sandbox Code Playgroud)

tf-idf knn scikit-learn oversampling imblearn

2
推荐指数
2
解决办法
4977
查看次数