pascalabcnet/InstallerSamples/MachineLearning/08_Datasets/TitanicRu/09_FeatureImportance.pas
Mikhalkovich Stanislav 7eaddd9a54 ML - множество примеров
ML - устранение неточностей и багов
ML - оптимизация производительности DecisionTreeRegressor.Fit, RandomForestRegressor.Fit
ML - тесты
2026-05-07 22:53:13 +03:00

32 lines
1.1 KiB
ObjectPascal

uses MLABC;
begin
var ds := Datasets.TitanicRu;
var df := ds.Data.Drop(['Id', 'Имя']);
var ageImputer := new Imputer(['Возраст']);
df := ageImputer.FitTransform(df);
var portImputer := new Imputer('Саутгемптон', ['ПортПосадки']);
df := portImputer.FitTransform(df);
var sexEncoder := new LabelEncoder('Пол');
df := sexEncoder.FitTransform(df);
var portEncoder := new LabelEncoder('ПортПосадки');
df := portEncoder.FitTransform(df);
var features := ['Класс', 'Пол', 'Возраст', 'БратьяИСупруги', 'РодителиИДети', 'ЦенаБилета', 'ПортПосадки'];
var X := df.ToMatrix(features);
var y := df.GetIntColumn('Выжил');
var model := new RandomForestClassifier(nTrees := 100, maxDepth := 6, minSamplesLeaf := 3, minSamplesSplit := 6, seed := 42);
model.Fit(X, y);
var imp := model.FeatureImportances;
Println('Важность признаков для RandomForestClassifier');
for var i := 0 to features.Length - 1 do
Println($'{features[i],-18}: {imp[i]:F3}');
end.