使用装袋算法与多模型

我正在尝试使用装袋算法为LasVegasTripAdvisorReviews-Dataset构建模型,遇到了一个错误(多标签和多输出分类不受支持),您能帮我解决这个问题并告诉我如何解决这个错误吗?

此致
附件包含指向拉斯维加斯数据集 LasVegasTripAdvisorReviews-Dataset的链接

# 用于分类的投票集成
import pandas
from sklearn import model_selection
from sklearn.linear_model import LogisticRegression   
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
from sklearn.ensemble import VotingClassifier,GradientBoostingClassifier,AdaBoostClassifier,RandomForestClassifier
url = "h:/LasVegasTripAdvisorReviews-Dataset.csv"
names = ['User country','Nr. reviews','Nr. hotel reviews','Helpful votes','Period of stay','Traveler type','Pool','Gym','Tennis court','Spa','Casino','Free internet','Hotel name','Hotel stars','Nr. rooms','User continent','Member years','Review month','Review weekday','Score']
dataframe = pandas.read_csv(url, names=names)
array = dataframe.values
X = array[:,:]
Y = array[:,:]
seed = 7
kfold = model_selection.KFold(n_splits=10, random_state=seed)
# 创建子模型
estimators = []
model1 = AdaBoostClassifier()
estimators.append(('AdaBoost', model1))
model2 = GradientBoostingClassifier()
estimators.append(('GradientBoosting', model2))
model3 = RandomForestClassifier()
estimators.append(('RandomForest', model3))
# 创建集成模型
ensemble = VotingClassifier(estimators)
results = model_selection.cross_val_score(ensemble, X, Y, cv=kfold)
print(results.mean())

堆栈跟踪:


NotImplementedError                       Traceback (most recent call last)
<ipython-input-9-bda887b4022f> in <module>
    27 # create the ensemble model
    28 ensemble = VotingClassifier(estimators)
---> 29 results = model_selection.cross_val_score(ensemble, X, Y, cv=kfold)
    30 print(results.mean())
/usr/local/lib/python3.5/dist-packages/sklearn/model_selection/_validation.py in cross_val_score(estimator, X, y, groups, scoring, cv, n_jobs, verbose, fit_params, pre_dispatch, error_score)
    400                                 fit_params=fit_params,
    401                                 pre_dispatch=pre_dispatch,
--> 402                                 error_score=error_score)
    403     return cv_results['test_score']
    404
......NotImplementedError: Multilabel and multi-output classification is not supported.

回答:

您有以下代码行:

    X = array[:,:]
    Y = array[:,:]

这意味着您的特征矩阵(X)目标向量(Y)是相同的。

您需要仅选择一列作为您的Y

例如,假设您希望最后一列作为Y

那么,您应该将上述代码行更改为如下:

X = values[:,:-1]
Y = values[:,-1:]

这应该能解决您遇到的错误。您遇到的错误基本上意味着:我不支持Y中超过一列

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注