我正在尝试适应机器学习NB模型,我的所有内容都很干净,但是可以将我的功能引用到我的标签上,以适应模型:
labels = [[0,0,0,1,1,0],[0,0,1,0,1,1],...]]
features = [[[0.1,0.2,0.3,0.4,0.5],[0.11,0.21,0.31,0.41,0.51],[0.12,0.22,0.32,0.42,0.52],[0.12,0.22,0.32,0.42,0.52],[0.12,0.22,0.32,0.43,0.53]],[0.13,0.23,0.33,0.43,0.53]...]]]
在我的问题中,[0.1,0.2,0.3,0.4,0.5] 必须引用标签中的第一个 0,所以分类器给出一个 no,[0.11,0.21,0.31,0.41,0.51] 指的是第二个 0,也是一个 no,[0.12,0.22,0.32,0.42,0.52] 是指第一个 1,所以对于分类器来说这是一个是。
如何拟合NB 分类器或重新排列列表以使其能够拟合模型?
谢谢。
您可能可以利用一个很棒的numpy
库,您可以使用该库以多种不同的方式重新组织输入数据的形状。可能的决定之一可能如下:
import numpy as np
from sklearn.naive_bayes import GaussianNB
labels = [[0,0,0,1,1,0],
[0,0,1,0,1,1]]
features = [[[0.1,0.2,0.3,0.4,0.5],
[0.11,0.21,0.31,0.41,0.51],
[0.12,0.22,0.32,0.42,0.52],
[0.12,0.22,0.32,0.42,0.52],
[0.12,0.22,0.32,0.43,0.53],
[0.13,0.23,0.33,0.43,0.53]],
[[0.1,0.2,0.3,0.4,0.5],
[0.11,0.21,0.31,0.41,0.51],
[0.12,0.22,0.32,0.42,0.52],
[0.12,0.22,0.32,0.42,0.52],
[0.12,0.22,0.32,0.43,0.53],
[0.13,0.23,0.33,0.43,0.53]]]
labels = np.ravel(labels)
features = np.reshape(features, (-1, 5))
gnb = GaussianNB()
gnb.fit(features, labels)