在 fit 中传递 x,y 时,出现以下错误:
When passing x,y in fit, I am getting the following error:
跟踪(最近一次通话):
Traceback (most recent call last):
文件 C:/Classify/classifier.py ,在
File "C:/Classify/classifier.py", line 95, in
train_avg,test_avg,cms = train_model(X,y, ceps,plot = True)中,行95, 文件 C :/Classify/classifier.py,第47行,位于train_model
train_avg, test_avg, cms = train_model(X, y, "ceps", plot=True) File "C:/Classify/classifier.py", line 47, in train_model
clf.fit(X_train,y_train)文件 C:\Python27\lib\site -packages\sklearn\svm\base.py,行676,适合提高ValueError(类数必须大于 ValueError:类数必须大于一。
clf.fit(X_train, y_train) File "C:\Python27\lib\site-packages\sklearn\svm\base.py", line 676, in fit raise ValueError("The number of classes has to be greater than" ValueError: The number of classes has to be greater than one.
下面是我的代码:
def train_model(X, Y, name, plot=False): """ train_model(vector, vector, name[, plot=False]) Trains and saves model to disk. """ labels = np.unique(Y) cv = ShuffleSplit(n=len(X), n_iter=1, test_size=0.3, indices=True, random_state=0) train_errors = [] test_errors = [] scores = [] pr_scores = defaultdict(list) precisions, recalls, thresholds = defaultdict(list), defaultdict(list), defaultdict(list) roc_scores = defaultdict(list) tprs = defaultdict(list) fprs = defaultdict(list) clfs = [] # for the median cms = [] for train, test in cv: X_train, y_train = X[train], Y[train] X_test, y_test = X[test], Y[test] clf = LogisticRegression() clf.fit(X_train, y_train) clfs.append(clf)推荐答案
在当前的训练集中,您可能只有一个唯一的班级标签。如错误消息所述,数据集中至少需要有两个唯一的类。例如,您可以运行 np.unique(y)来查看数据集中的唯一类标签是什么。
You probably have only one unique class label in the training set present. As the error messages noted, you need to have at least two unique classes in the dataset. E.g., you can run np.unique(y) to see what the unique class labels in your dataset are.
更多推荐
ValueError:类数必须大于一(python)
发布评论