Спасибо, действительно, помогло - странно, что при заполнении данными из массива не выдаёт ошибку.
Такой код
//+------------------------------------------------------------------+//|Функция выполняет кластеризацию//+------------------------------------------------------------------+void f_Klaster(double &Input_arr_Data[],int &Output_arr_Klaster[],int N_Stolb,int N_Strok,int N_Klasters)
{
CMatrixDouble MatrixLearn;//обучающая часть данных
MatrixLearn.Resize(N_Strok, N_Stolb);
for(int col=0; col<N_Stolb; col++)//Число столбцов
{
for(int row=0; row<N_Strok; row++)//Число строк
{
MatrixLearn[row].Set(col,Input_arr_Data[N_Stolb*row+col]);//строка/столбец
}
}
CMatrixDouble MatrixCentroid;//массив центровint KM_info=0;
CAlglib::KMeansGenerate(
MatrixLearn,//- массив [строк , столбцов]
N_Strok,// - число строк
N_Stolb,// - число столбцов
N_Klasters,//- число кластеров, сколько хотите получить10,// - число попыток запуска для лучшей инициализации
KM_info,//- коды ошибок и результата выполнения
MatrixCentroid,//- массив центров
Output_arr_Klaster// - номер кластера для каждой строки из XY
);
Print("KM_info=",KM_info);
switch(KM_info)
{
case -3:
Print("-3, если задача является вырожденной (количество | отличных точек меньше K)");
break;
case -1:
Print("-1, если было передано неверное NPoints/NFeatures/K/Перезапусков");
break;
case1:
Print("1, если подпрограмма успешно завершена");
break;
}
}
Однако, получаю в переменной KM_info значение "-3" - и теперь это загадка. Есть идеи, почему так?
Спасибо, действительно, помогло - странно, что при заполнении данными из массива не выдаёт ошибку.
Такой код
Однако, получаю в переменной KM_info значение "-3" - и теперь это загадка. Есть идеи, почему так?
Смотрите код if(zerosizeclusters) { //--- Some clusters have zero size - rare,but possible. //--- We'll choose new centers for such clusters using k-means++ rule //--- and restart algorithm if(!SelectCenterPP(xy,npoints,nvars,ct,cbusy,k,d2,p,tmp)) { info=-3; return; } continue; }
Возможно потому что у вас только 0 и 1. Проверьте для начала на более разнообразных данных
Смотрите код if(zerosizeclusters) { //--- Some clusters have zero size - rare,but possible. //--- We'll choose new centers for such clusters using k-means++ rule //--- and restart algorithm if(!SelectCenterPP(xy,npoints,nvars,ct,cbusy,k,d2,p,tmp)) { info=-3; return; } continue; }
Возможно потому что у вас только 0 и 1. Проверьте для начала на более разнообразных данных
первое что увидел
Спасибо, действительно, помогло - странно, что при заполнении данными из массива не выдаёт ошибку.
Такой код
Однако, получаю в переменной KM_info значение "-3" - и теперь это загадка. Есть идеи, почему так?
Спасибо, действительно, помогло - странно, что при заполнении данными из массива не выдаёт ошибку.
Такой код
Однако, получаю в переменной KM_info значение "-3" - и теперь это загадка. Есть идеи, почему так?
Смотрите код
if(zerosizeclusters)
{
//--- Some clusters have zero size - rare,but possible.
//--- We'll choose new centers for such clusters using k-means++ rule
//--- and restart algorithm
if(!SelectCenterPP(xy,npoints,nvars,ct,cbusy,k,d2,p,tmp))
{
info=-3;
return;
}
continue;
}
Возможно потому что у вас только 0 и 1. Проверьте для начала на более разнообразных данных
Смотрите код
if(zerosizeclusters)
{
//--- Some clusters have zero size - rare,but possible.
//--- We'll choose new centers for such clusters using k-means++ rule
//--- and restart algorithm
if(!SelectCenterPP(xy,npoints,nvars,ct,cbusy,k,d2,p,tmp))
{
info=-3;
return;
}
continue;
}
Возможно потому что у вас только 0 и 1. Проверьте для начала на более разнообразных данных
Проверил на разнообразных циферках
Результат тот же :(
Чегото я ещё не так делаю...
вы чертовски не правы..
либо не правильно выразились
он чертовски прав
Проверил на разнообразных циферках
Результат тот же :(
Чегото я ещё не так делаю...
MatrixLearn
Распечатал так - получил нули
Правильно ли распечатал?
Если правильно, то получается, что тут ошибка
MatrixLearn[row].Set(col,Input_arr_Data[N_Stolb*row+col]);//строка/столбецДелал по аналогии, как у Вас в коде.
К тому, что если есть закономерность, то она одинаковая в обе стороны.
То есть если есть сезонная закономерность, например "sell in may and go away", то в какие конкретно стороны она одинаковая?
То есть если есть сезонная закономерность, например "sell in may and go away", то в какие конкретно стороны она одинаковая?
Стат. значимость такой стратегии близка к нулю.
Стат. значимость такой стратегии близка к нулю.
Распечатал так - получил нули
Правильно ли распечатал?
Неправильно. Доступ на чтение как в 2мерном массиве