Способ нормализации партии, извлечения элементов партии и обучения партии

Из-за того, что набор данных слишком велик, чтобы загрузить все сразу. Мне нужно нормализовать, извлечь функции и обучить его партиями. Я выбрал радужную оболочку в качестве набора данных и scikit-learn в python, чтобы подтвердить свои идеи. Первым шагом я нормализовал партии, используя standarScaler.particial_fit(),

def batch_normalize(data):
    scaler = StandardScaler()
    dataset=[]
    for i in data:
        sc = scaler.partial_fit(i)
    for i in data:
        dataset.append(scaler.transform(i))

    return dataset

Второй шаг, я извлек функции, используя IncrementalPCA.particial_fit()

def batch_feature_extracrton(dataset):
    ipca = IncrementalPCA(n_components=4)
    dataset_1=[]
    for i in dataset:
        ipca.partial_fit(i)
    for i in dataset:
        dataset_1.extend(ipca.transform(i))
    return dataset_1

Третий шаг, я обучил данные с помощью MLPClassifier.particial_fit()

def batch_classify(X_train, X_test, y_train, y_test):
    batch_mlp = MLPClassifier(hidden_layer_sizes=(50,10), max_iter=500,
                    solver='sgd', alpha=1e-4,  tol=1e-4, random_state=1,
                    learning_rate_init=.01)
    for i,j in zip(X_train,y_train):
        batch_mlp.partial_fit(i, j,[0,1,2])
    print("batch Test set score: %f" % batch_mlp.score(X_test, y_test))

Ниже приведена моя основная функция, которая вызывает указанные выше три функции:

def batch(iris,batch_size):
    dataset=batch_normalize(list(chunks(iris.data, batch_size)))
    dataset=batch_feature_extracrton(dataset)
    X_train, X_test, y_train, y_test = train_test_split(dataset, iris.target, test_size=0.2)
    batch_data = list(chunks(X_train, batch_size))
    batch_label = list(chunks(y_train, batch_size))
    batch_classify(batch_data, X_test, batch_label, y_test)

Тем не менее, в этом методе, на каждом этапе, включая нормализацию и извлечение функций, мне приходится проходить через все пакеты данных дважды. Есть ли другие способы, чтобы упростить процесс? (например, партия может перейти непосредственно с шага 1 на 3)

0 ответов

Другие вопросы по тегам