Python 可以使用列表作为输入的np.array()吗?

Python 可以使用列表作为输入的np.array()吗?,python,arrays,numpy,machine-learning,scikit-learn,Python,Arrays,Numpy,Machine Learning,Scikit Learn,我正在构建我的MLP算法,并尝试使用k-fold交叉验证与网格搜索相结合,以找到隐藏层/节点的最佳组合 起初,我只是尝试改变alpha水平,效果很好,我使用了: from sklearn.model_selection import cross_val_score import numpy as np from sklearn.neural_network import MLPClassifier import matplotlib.pyplot as plt import mglearn

我正在构建我的MLP算法,并尝试使用k-fold交叉验证与网格搜索相结合,以找到隐藏层/节点的最佳组合

起初,我只是尝试改变alpha水平,效果很好,我使用了:

from sklearn.model_selection import cross_val_score
import numpy as np
from sklearn.neural_network import MLPClassifier
import matplotlib.pyplot as plt 
import mglearn 

mlp = MLPClassifier()
param_grid = {'alpha': np.arange(0,1,0.5)}
knn_gscv = GridSearchCV(mlp, param_grid, cv=5)

#fit model to data
knn_gscv.fit(X, y)

#check top performing n_neighbors value
print("best alpha value is",knn_gscv.best_params_)
#check mean score for the top performing value of n_neighbors
print("best score best alpha",knn_gscv.best_score_)
这起作用了。但现在我尝试改变隐藏层和节点的数量,并尝试了以下方法:

from sklearn.model_selection import cross_val_score
import numpy as np
from sklearn.neural_network import MLPClassifier
import matplotlib.pyplot as plt 
import mglearn 

mlp = MLPClassifier()
param_grid = {'hidden_layer_sizes': np.arange([10,10],[20,20],[30,30])}
knn_gscv = GridSearchCV(mlp, param_grid, cv=5)

#fit model to data
knn_gscv.fit(X, y)

#check top performing n_neighbors value
print("best alpha value is",knn_gscv.best_params_)
#check mean score for the top performing value of n_neighbors
print("best score best alpha",knn_gscv.best_score_)
但我收到一条错误消息。我认为这是因为np.array()不能很好地使用列表作为输入。但是我仍然相信我应该使用np.array,因为这是用网格搜索实现它的最简单的方法。有办法绕过它吗?

首先,
np.arange([10,10],[20,20],[30,30])
永远不会起作用

甚至是
np.arange([[10,10],[20,20],[30,30]])
,正如评论中所建议的那样

双方都将提出:

TypeError:-:“list”和“list”的操作数类型不受支持


简短回答 对于
“隐藏的\u层大小”
,您需要一个元组列表

例如,
param_grid={'hidden_layer_size':[(10,10)、(20,20)]}


长话短说 要生成一系列元组,请使用以下内容:

start=10
stop=20
step = 5

param_grid = {'hidden_layer_sizes': 
               [(n, min(n+step, stop)) for n in range(start, stop, step)]}

param_grid
Out[29]: {'hidden_layer_sizes': [(10, 15), (15, 20)]}

请在问题中包含错误消息始终将完整的错误消息(从单词“Traceback”开始)作为文本(而不是屏幕截图)进行讨论(不是评论)。还有其他有用的信息。问题是
param_grid={'hidden_layer_size':np.arange([10,10],[20,20],[30,30])}
需要
param_grid={'hidden_layer_size':np.arange([10,10],[20,20],[30,30])}
是的,你需要将这些排列好的列表对传递到一个列表中才能回答你的问题:是的,很有可能将列表作为输入传递。问题不是将其传递到np数组,而是将该numpy数组传递到SKL MLP。