Как повысить точность прогнозирования на разных алгоритмах машинного обучения в ML.Net - PullRequest
1 голос
/ 11 апреля 2019

Я новичок в Ml.Net и в настоящее время использую версию 0.11, точнее, двоичные классификаторы, в чем я сейчас работаю.Сейчас я нахожусь в точке, где я понял это и могу достичь того, что мне нужно, но я хочу быть в состоянии уточнить вещи и открыть свои варианты.

У меня есть вопросы, касающиеся настройки параметров стохастического градиентного спуска, двойных кохордов стохастического градиентного подъема и алгоритмов логистической регрессии.Точность прогнозирования для невидимых данных для них (без установленных опций) намного хуже, чем для алгоритма быстрого дерева, в котором в качестве опций заданы листья, дерево и минимальные точки данных в листьях (например, 50% против 89% точности).Подобно тому, как я устанавливаю параметры с помощью FastTree, я не могу понять, как установить параметры для других алгоритмов ML (например, numTrees, numLeaves и т. Д.), И поскольку это еще не RC, документации практически нет, и нет примеров, которые яможно найти.

Я также хотел бы знать «типичные» параметры, которые кто-то может установить с помощью этих алгоритмов, чтобы я мог получить базовый уровень и изменить ситуацию оттуда.

Я выяснил,У логистической регрессии может быть составлен и передан объект опций, но я не могу найти то же самое для других, и не знаю, что типично для опций, передаваемых алгоритму логистической регрессии.

Я искал сеть,но подходите с пустыми руками.

Добавление моего конвейера со следующей информацией дает хорошую точность:

.Append(mlContext.BinaryClassification.Trainers.FastTree(numLeaves: 50, numTrees: 50, minDatapointsInLeaves: 20));

Добавление моего конвейера с любым из этих ниже дает ужасную точность

.Append(mlContext.BinaryClassification.Trainers.LogisticRegression());
            .Append(mlContext.BinaryClassification.Trainers.StochasticGradientDescent());
      .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent());

Кроме того, использование быстрого дерева без параметров дает низкую производительность, например:

.Append(mlContext.BinaryClassification.Trainers.FastTree());

Я выяснил optiosn для lОгистическая регрессия (т. е. ниже), но не знаю, какие «типичные значения» установить / какие варианты включить:

 var LogRegOptions = new Microsoft.ML.Trainers.LogisticRegression.Options
 {
    SgdInitializationTolerance = ?,
    InitWtsDiameter = ?,

    ?????
 };

Я бы хотел, чтобы эти алгоритмы предсказывали примерно с той же точностью, что и быстрыеДерево с заданными параметрами (89%), но все они дают точность менее 50% без загруженных в них параметров.

Спасибо, люди впереди

...