Utils этот несчастный из одной функции подправил

This commit is contained in:
Mikhalkovich Stanislav 2026-03-11 12:13:41 +03:00
parent 463d7c30ef
commit 18e4c5ba79
2 changed files with 30 additions and 1 deletions

View file

@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>net40</TargetFramework>
<OutputPath>..\..\bin\</OutputPath>
<OutputPath>..\bin\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>

View file

@ -12,8 +12,22 @@ uses LinearAlgebraML;
/// возможные небольшие численные ошибки
function LabelsToInts(y: Vector): array of integer;
/// Кодирует строковые метки классов в целочисленные индексы.
/// Каждому уникальному значению присваивается номер 0,1,2,...
/// Порядок кодирования соответствует порядку первого появления меток.
/// Используется при обучении моделей и визуализации.
function EncodeLabels(labels: array of string): array of integer;
/// Преобразует целочисленные индексы классов обратно в строковые метки.
/// Массив classes задаёт соответствие: classes[i] — имя класса с индексом i.
/// Используется для получения текстовых предсказаний моделей.
function DecodeLabels(y: array of integer; classes: array of string): array of string;
/// Возвращает список уникальных меток классов.
/// Порядок соответствует первому появлению значений во входном массиве.
/// Используется для определения множества классов в задаче классификации.
function UniqueLabels(labels: array of string): array of string;
implementation
uses MLExceptions;
@ -107,4 +121,19 @@ begin
end;
end;
function DecodeLabels(y: array of integer; classes: array of string): array of string;
begin
var res := new string[y.Length];
for var i := 0 to y.Length-1 do
res[i] := classes[y[i]];
Result := res;
end;
function UniqueLabels(labels: array of string): array of string;
begin
Result := labels.Distinct.ToArray;
end;
end.