Я новичок в Python и ML, поэтому, пожалуйста, потерпите меня.
Я пытаюсь программно генерировать шаги конвейера scikit-learn на основе параметров в файле JSON.
Параметры следующие:
{
"scaler": ["STAN", "MINMAX", "MAXABS", "ROBUST", "PT"],
"imbalance": ["SMOTE", "RUS", "SMOTEENN"],
"classifier": ["SVM", "RF", "GBC"]
}
Я пытаюсь перебрать каждый из списков, начиная со скейлера и добавляя шаги конвейера с каждой итерацией.Цель состоит в том, чтобы иметь один конвейер для каждой возможной комбинации.
Следующие циклы предоставят мне некоторые выходные данные:
complete_pipelines = []
pipeline_steps = []
for scaler in scalerList:
pipeline_steps.append(scaler)
for imbalancer in imbalancerList:
pipeline_steps.append(imbalancer)
for classifier in classifierList:
pipeline_steps.append(classifier)
if (len(pipeline_steps) == 3):
complete_pipelines.append(pipeline_steps)
pipeline_steps = []
pipeline_steps.append(scaler)
pipeline_steps.append(imbalancer)
То, что я получаю с помощью вышеупомянутого метода:
[
['STAN', 'SMOTE', 'SVM'],
['STAN', 'SMOTE', 'RF'],
['STAN', 'SMOTE', 'GBC']
]
Это начало, но я ищу следующее:
[
[“STAN”, “SMOTE”, “SVM”]
[“STAN”, “SMOTE”, “RF”]
[“STAN”, “SMOTE”, “GBC”]
[“STAN”, “RUS”, “SVM”]
[“STAN”, “RUS”, “RF”]
[“STAN”, “RUS”, “GBC”]
[“STAN”, “SMOTEENN”, “SVM”]
[“STAN”, “SMOTEENN”, “RF”]
[“STAN”, “SMOTEENN”, “GBC”]
[“MINMAX”, “SMOTE”, “SVM”]
[“MINMAX”, “SMOTE”, “RF”]
[“MINMAX”, “SMOTE”, “GBC”]
.
.
.
[“PT”, “SMOTEENN”, “SVM”]
[“PT”, “SMOTEENN”, “RF”]
[“PT”, “SMOTEENN”, “GBC”]
]
После того, как эти списки сформированы, я пройдусь по каждому из списков и настрою конвейеры соответствующим образом.Но просто заставить это работать уже поставило меня в тупик ...
Буду признателен за любые указания о том, как реализовать такой цикл или есть ли какие-либо функции для создания таких наборов, уже "встроенных".
Спасибо, Стив