Scikit learn 它´;有没有可能将sklearn的cross_val_score()形式应用于具有Weigth Elimination等附加项的neupy NN?

Scikit learn 它´;有没有可能将sklearn的cross_val_score()形式应用于具有Weigth Elimination等附加项的neupy NN?,scikit-learn,cross-validation,levenberg-marquardt,neupy,Scikit Learn,Cross Validation,Levenberg Marquardt,Neupy,我正在尝试将cross_val_score()应用于以下算法: cgnet = algorithms.LevenbergMarquardt( connection=[ layers.Input(XTrain.shape[1]), layers.Linear(6), layers.Linear(1)], mu_update_factor=2, mu=0.1, shuffle_data=True,

我正在尝试将cross_val_score()应用于以下算法:

cgnet = algorithms.LevenbergMarquardt(
    connection=[
        layers.Input(XTrain.shape[1]),
        layers.Linear(6),
        layers.Linear(1)],
        mu_update_factor=2,
        mu=0.1,
        shuffle_data=True,
        verbose=True,
        decay_rate=0.1,
        addons=[algorithms.WeightElimination])

kfold = KFold(n_splits=5, shuffle=True, random_state=7)
scores=cross_val_score(cgnet, XTrainScaled,yTrainScaled,scoring='neg_mean_absolute_error',cv=kfold,verbose=10)
print scores
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
这是我收到的错误信息:

TypeError: Cannot create a consistent method resolution
order (MRO) for bases LevenbergMarquardtWeightElimination, WeightElimination

如果没有重量消除或任何其他插件,cross_val_score()可以很好地工作……还有其他方法吗?谢谢

看起来函数
cross\u val\u score
在neupy中不起作用,但是您可以用稍微不同的方式运行相同的代码

import numpy as np
from neupy import algorithms, layers
from sklearn.model_selection import *
from sklearn import metrics

XTrainScaled = XTrain = np.random.random((10, 2))
yTrainScaled = np.random.random((10, 1))

kfold = KFold(n_splits=5, shuffle=True, random_state=7)
scores = []

for train, test in kfold.split(XTrainScaled):
    x_train, x_test = XTrainScaled[train], XTrainScaled[test]
    y_train, y_test = yTrainScaled[train], yTrainScaled[test]

    cgnet = algorithms.LevenbergMarquardt(
        connection=[
            layers.Input(XTrain.shape[1]),
            layers.Linear(6),
            layers.Linear(1)
        ],
        mu_update_factor=2,
        mu=0.1,
        shuffle_data=True,
        verbose=True,
        decay_rate=0.1,
        addons=[algorithms.WeightElimination]
    )

    cgnet.train(x_train, y_train, epochs=5)
    y_predicted = cgnet.predict(x_test)

    score = metrics.mean_absolute_error(y_test, y_predicted)
    scores.append(score)

print(scores)
scores = np.array(scores)
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))

看起来函数
cross\u val\u score
在neupy中不起作用,但您可以以稍微不同的方式运行相同的代码

import numpy as np
from neupy import algorithms, layers
from sklearn.model_selection import *
from sklearn import metrics

XTrainScaled = XTrain = np.random.random((10, 2))
yTrainScaled = np.random.random((10, 1))

kfold = KFold(n_splits=5, shuffle=True, random_state=7)
scores = []

for train, test in kfold.split(XTrainScaled):
    x_train, x_test = XTrainScaled[train], XTrainScaled[test]
    y_train, y_test = yTrainScaled[train], yTrainScaled[test]

    cgnet = algorithms.LevenbergMarquardt(
        connection=[
            layers.Input(XTrain.shape[1]),
            layers.Linear(6),
            layers.Linear(1)
        ],
        mu_update_factor=2,
        mu=0.1,
        shuffle_data=True,
        verbose=True,
        decay_rate=0.1,
        addons=[algorithms.WeightElimination]
    )

    cgnet.train(x_train, y_train, epochs=5)
    y_predicted = cgnet.predict(x_test)

    score = metrics.mean_absolute_error(y_test, y_predicted)
    scores.append(score)

print(scores)
scores = np.array(scores)
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))

您使用什么neupy和python版本?neupy 0.6.5和numpy 1.15.1您使用什么neupy和python版本?neupy 0.6.5和numpy 1.15.1谢谢,最好的regards@ManuelAlmeida问题似乎在于,sklearn希望在
cross_val_score
期间克隆提供的估计器,但
neupy
的代码中出现了一些奇怪的情况,以便从克隆中初始化模型。你应该将此作为一个问题提交到谢谢你,贝斯特regards@ManuelAlmeida问题似乎在于,sklearn希望在
cross_val_score
期间克隆提供的估计器,但
neupy
的代码中出现了一些奇怪的情况,以便从克隆中初始化模型。您应该将此作为问题提交到