Python 试图理解训练数据结构
我正在尝试训练一个模型,以便在一行灰度像素之间进行选择Python 试图理解训练数据结构,python,scikit-learn,Python,Scikit Learn,我正在尝试训练一个模型,以便在一行灰度像素之间进行选择 from sklearn.neural_network import MLPRegressor X = [[1, 2, 3], [2, 1, 3], [2, 1, 2]] y = [0, 1, 2] model = MLPRegressor(hidden_layer_sizes=(10, 10), solver="lbfgs", activation="relu") model.fit(X, y)
from sklearn.neural_network import MLPRegressor
X = [[1, 2, 3], [2, 1, 3], [2, 1, 2]]
y = [0, 1, 2]
model = MLPRegressor(hidden_layer_sizes=(10, 10), solver="lbfgs", activation="relu")
model.fit(X, y)
其中X是我想要训练模型的线条列表,y是模型应该输出的预期像素索引。(示例值)
img[0]打印的位置
[0.61176471 0.46045752 0.2627451 ]
在控制台中。这是意料之中的
但预测失败了:
ValueError:应为2D数组,而应为1D数组:数组=[0.61176471
0.46045752 0.2627451 ]. 使用数组重塑数据形状。如果数据具有单个特征或
如果包含单个样本,则重塑(1,-1)
一旦用以下材料重塑:
line = (np.array(img[0])).reshape(1,-1)
产出:
[[0.61176471 0.46045752 0.2627451 ]]
和模型。预测(行)
输出
[1.79295143]
我无法解释,因为我在寻找一系列指数概率,比如[0.998,0.001,0.001]
在此之前,我使用的是RGB像素线,看起来应该像[[[R][G][B]、[[R][G][B]、[[R][G][B]],其中字母是介于0和1之间的值
模型输出了一组概率。
这让我现在觉得它没有像预期的那样工作,很可能输出的是与颜色相关的概率,而不是像素
我做错了什么?当您使用回归时,模型将尝试预测一个连续值,这就是您训练它的方式(请注意,输出Y是一个单一值):
- 从X=[1,2,3]拟合Y=0
- 从X=[2,1,3]拟合Y=1
- 从X=[2,1,2]拟合Y=2
- from X=[1,2,3]拟合Y=[1,0,0]
- from X=[2,1,3]拟合Y=[0,1,0]
- from X=[2,1,2]拟合Y=[0,0,1]
[1.79295143]