sklearn多项式在python中输入形状错误

sklearn多项式在python中输入形状错误,python,scikit-learn,Python,Scikit Learn,我是新手,在安装x\u-train和y\u-train时遇到问题。这是有错误的代码 def naive_bayes(x_train, y_train): clf = MultinomialNB() clf.fit(x_train, y_train) joblib.dump(clf, '%s/NB/naive_bayes.pkl' %model_direc) if __name__ == "__main__": train_df = pd.read_json('%

我是新手,在安装
x\u-train
y\u-train
时遇到问题。这是有错误的代码

def naive_bayes(x_train, y_train):
    clf = MultinomialNB()
    clf.fit(x_train, y_train)
    joblib.dump(clf, '%s/NB/naive_bayes.pkl' %model_direc)

if __name__ == "__main__":
    train_df = pd.read_json('%s/train.json' %data_direc, orient='index')
    y_train = train_df[['*', '**', '***']].astype(np.float64)

    x_train = pd.read_json('%s/features.json' %feature_direc, orient='columns')
    x_train = x_train.sort_index()

    print x_train.shape
    print y_train.shape

    naive_bayes(x_train, y_train)
这是输出

(80, 1500)
(80, 3)
Traceback (most recent call last):
  File "src/NBtrain.py", line 50, in <module>
    naive_bayes(x_train, y_train)
  File "src/NBtrain.py", line 37, in naive_bayes
    clf.fit(x_train, y_train)
  File "/Library/Python/2.7/site-packages/sklearn/naive_bayes.py", line 474, in fit
    X, y = check_X_y(X, y, 'csr')
  File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py", line 444, in check_X_y
    y = column_or_1d(y, warn=True)
  File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py", line 480, in column_or_1d
    raise ValueError("bad input shape {0}".format(shape))
ValueError: bad input shape (80, 3)
(801500)
(80, 3)
回溯(最近一次呼叫最后一次):
文件“src/NBtrain.py”,第50行,在
天真的贝耶斯(x_火车,y_火车)
文件“src/NBtrain.py”,第37行,朴素贝叶斯格式
clf.fit(x_系列、y_系列)
文件“/Library/Python/2.7/site-packages/sklearn/naive_-bayes.py”,第474行,适合
十、 y=检查X(X,y,‘csr’)
文件“/Library/Python/2.7/site-packages/sklearn/utils/validation.py”,第444行,检查
y=列_或_1d(y,警告=真)
文件“/Library/Python/2.7/site packages/sklearn/utils/validation.py”,第480行,在列_或_1d中
raise VALUERROR(“错误的输入形状{0}”。格式(形状))
ValueError:输入形状不正确(80,3)
features.json
是使用
tf-idf
创建的

x_列车的尺寸为(801500)。
y_列的大小为(80,3)


我不确定为什么
y\u列
状态不好?

多项式nb的目标值应该只有一列。一般来说,对于分类任务,我们只有一个目标,因此如果您有多个不同的目标,那么您将需要多个分类器