Я ищу R-код/пакет, которые имитируют нелинейные данные с выбросами, чтобы протестировать некоторые алгоритмы классификатора одного класса.Имитировать выбросы и нелинейные данные для тестирования классификаторов одного класса
Я нашел этот код, который создает набор данных в форме бананов. Это довольно хорошо, потому что мои реальные данные выглядят как гипербола в 2d. Но мне нужен набор данных, где отмечены все выбросы, чтобы я мог напечатать матрицу путаницы и оценить характеристики моих моделей. Это не обязательно должно выглядеть так. Самое главное - это нелинейность.
Заранее спасибо.
banana=function(A,B,C1,C2,N,keep=10,init=10)
{
R=init*keep+N*keep
x1=x2=0
bimat=matrix(double(2*N),ncol=2)
for (r in 1:R) {
x1=rnorm(1,mean=(B*x2+C1)/(A*(x2^2)+1),sd=sqrt(1/(A*(x2^2)+1)))
x2=rnorm(1,mean=(B*x2+C2)/(A*(x1^2)+1),sd=sqrt(1/(A*(x1^2)+1)))
if (r>init*keep && r%%keep==0) {
mkeep=r/keep; bimat[mkeep-init,]=c(x1,x2)
}
}
return(bimat)
}
# usage
set.seed(66)
nvar2=2
A=0.5; B=0; C1=C2=3
y2=banana(A=A,B=B,C1=C1,C2=C2,1000)
Вы можете просто сортировать данные так, что последние несколько строк выпадающие? И классификатор может дать вам предсказанный класс, считать, что вектор и результаты вектор, сравнить результаты, и у вас есть ваша матрица замешательства. –
Извините, но что вы имеете в виду, сортируя данные? Они находятся в 2d, высокое значение в одном из двух измерений не означает, что оно является выбросом. – MomoMI
Какие выбросы вы можете просто добавить точки, такие как x = 3, y = 3, или вы хотите, чтобы точки, которые примерно соответствовали вашему распределению, были немного слишком далеки. – G5W