Форум программистов, компьютерный форум, киберфорум
C#: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.04.2020
Сообщений: 13

Кривая AUC-ROC при поиске аномалий ML.Net

28.08.2025, 00:10. Показов 1259. Ответов 3

Студворк — интернет-сервис помощи студентам
Все привет. Ищу аномалии в данных. При расчете метрики ругается, что нет такого столбца. Что не сделал я или не то делаю
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
MLContext ml = new MLContext();
 
            var dataView = ml.Data.LoadFromEnumerable(data);
            var dataSplit = ml.Data.TrainTestSplit(dataView);
 
            string outputColumnName = nameof(SrCnnAnomalyDetection.Prediction);
            string inputColumnName = nameof(TimeSeriesData.Value);
 
            var odv = ml.Transforms.DetectAnomalyBySrCnn(outputColumnName, inputColumnName, windowSize: 64, backAddWindowSize: 5, lookaheadWindowSize: 5, averagingWindowSize: 3, judgementWindowSize: 21);
var model = odv.Fit(dataSplit.TrainSet);
            var predictions = model.Transform(dataSplit.TrainSet);
 
            var results = ml.Data.CreateEnumerable<SrCnnAnomalyDetection>(predictions, reuseRowObject: false).ToList();
                 
 
public class TimeSeriesData
    {
        public float Value { get; set; }
    }
 
    public class SrCnnAnomalyDetection
    {
        [VectorType]        
        public double[] Prediction { get; set; }
    }
Ругается здесь
C#
1
var metrics = ml.AnomalyDetection.Evaluate(dataSplit.TestSet, "Prediction");
Пробовал
C#
1
2
3
var pipeline = ml.Transforms.Concatenate(outputColumnName, inputColumnName).Append(ml.Transforms.CopyColumns("Prediction", nameof(SrCnnAnomalyDetection.Prediction)));
 
            var model = pipeline .Fit(dataSplit.TrainSet);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.08.2025, 00:10
Ответы с готовыми решениями:

Разница между ASP.NET Core 2, ASP.NET Core MVC, ASP.NET MVC 5 и ASP.NET WEBAPI 2
Здравствуйте. Я в бекенд разработке полный ноль. В чем разница между вышеперечисленными...

Access 2000 + OleDb Аномалия )
Не могу разгодать головоломку. Access + 3 клиента через OleDb. 100% что приложение не удаляет...

Ребят посмотрите код, какая-то аномалия блин!
Ребят подсобите с кодом! Черт совсем мозги не варят, не могу понять что происходит Сначала...

3
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,705
28.08.2025, 11:13
для начала стоит проверить, что у вас присутствуют нужные столбцы в данных и вы их правильно указываете при вызове методов.
0
0 / 0 / 0
Регистрация: 16.04.2020
Сообщений: 13
28.08.2025, 22:38  [ТС]
Проверил в схеме odv у меня нет нужного столбца. Что я сделал... полученую модель перевел в новую IDataView по столбцам
C#
1
2
3
4
5
6
7
8
            List<SeriesData> serdat = new List<SeriesData>();
            int k = 0;
            foreach (var pr in results)
            {
                serdat.Add(new SeriesData(k, data[k].Value, Convert.ToSingle(pr.Prediction[0]), Convert.ToSingle(pr.Prediction[1]), pr.Prediction));
 
                k++;
            }
новый класс
C#
1
2
3
4
5
6
7
8
9
public class SeriesData
    {
        public int Id { get; set; }
        public double Value { get; set; }
        public Single Anomaly { get; set; }
        public Single Score { get; set; }
        [VectorType]
        public double[] Prediction { get; set; }
}
Новый IDataView пока не разбивал на тестовый и обучающий...
C#
1
IDataView dv = ml.Data.LoadFromEnumerable<SeriesData>(serdat);
Теперь, в схеме есть все нужные столбцы, но с кривой не получается
C#
1
var metrics = ml.AnomalyDetection.Evaluate(dv, "Anomaly", "Score", "Prediction");
0
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,705
01.09.2025, 11:44
Цитата Сообщение от artem2598 Посмотреть сообщение
var metrics = ml.AnomalyDetection.Evaluate(dv, "Anomaly", "Score", "Prediction");
попробуйте так
C#
1
var metrics = ml.AnomalyDetection.Evaluate(dv, labelColumnName: "Anomaly", scoreColumnName: "Score", predictionColumnName: "Prediction");
Цитата Сообщение от artem2598 Посмотреть сообщение
public Single Anomaly { get; set; }
        public Single Score { get; set; }
их тоже можно сделать double
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2025, 11:44
Помогаю со студенческими работами здесь

Аномалия с количеством строк в БД!
Народ, такая вот ситуация: Дал клиенту рабочую прогу, потом дал новую версию той же проги. данные...

Аномалия
На одном компьютере так,а на другом по-другому...С чем это может быть связано? (я про зеленый...

Аномальное отражение массива и/или его элементов
Я создаю некоторые массивы вне стека (в корне класса): Vector2 flowField; Vector2...

Аномальное переполнение памяти
Сделал программу для эволюционного моделирования. Агентом выступает сама программа, а средой -...

Аномалия в массиве с бинарными файлами
Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru