即使使用像最近邻居这样的简单分类器,我也无法判断其准确性,因而无法改善它.
例如,使用以下代码:
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%.
我怎样才能找到准确度?无论是图形还是仅通过一个简单的百分比.
我需要对参数的解释
createBackgroundSubtractorKNN(int history=500, double dist2Threshold=400.0, bool detectShadows=true)
Run Code Online (Sandbox Code Playgroud)
history、dist2Threshold 和 detectShadows 如何影响背景减法器?
我是机器学习的新手。最近,我已经学会了如何计算confusion_matrix对Test set的KNN Classification。但我不知道,如何计算confusion_matrix为Training set的KNN Classification?
我如何可以计算confusion_matrix为Training set的KNN Classification从下面的代码?
下面的代码是用于计算confusion_matrix为Test 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) 我有以下代码来尝试在分类模型中使用 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) scikit learn 中 KNN 算法的实现如何计算该predict_proba(X)方法的概率估计?
我知道这是一个非常普遍的问题,没有关于我的实际项目的细节,但我的问题是:
我正在进行遥感图像分类.我使用的是面向对象的方法:首先我将图像分割到不同的区域,然后从颜色,形状和纹理等区域中提取特征.一个区域中所有要素的数量可能是30个,通常总共有2000个区域,我将选择5个类别,每个类别有15个样本.
综上所述:
如何选择合适的分类器?如果有3个分类器(ANN,SVM和KNN),我应该选择哪个更好的分类?
我正在使用 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) 我目前正在使用Matlab的k最近邻分类器(knnclassify)来训练和测试二进制属性.如果没有提供k,则k的默认值参数为1,并且可以选择k的其他值.我已经完成了在线研究和stackoverflow研究,但是没有任何相关内容可以解决我的问题,即k的最佳用途是什么.是否有内置函数可以告诉我对于我的特定数据,还是只是猜测并等待看到的精度是什么?任何帮助将不胜感激.
以下是matlab的knnclassify文档的链接:knnclassify
由于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) 我已经预先清理了数据,下面显示了前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) knn ×10
python ×3
matlab ×2
r ×2
scikit-learn ×2
apache-spark ×1
c++ ×1
class ×1
imblearn ×1
opencv ×1
oversampling ×1
pyspark ×1
roc ×1
svm ×1
tf-idf ×1