首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于多模型的套袋算法

基于多模型的套袋算法
EN

Stack Overflow用户
提问于 2018-12-16 13:52:54
回答 1查看 702关注 0票数 1

我试图建立一个模型的LasVegasTripAdvisorReviews数据集使用套袋算法,我有一个错误(多标签和多输出分类是不支持的),请您帮助我,并告诉我如何解决错误)

问候

附件包含到拉斯韦加斯数据集 LasVegasTripAdvisorReviews Dataset的链接

代码语言:javascript
复制
# Voting Ensemble for Classification
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)
# create the sub models
estimators = []
model1 = AdaBoostClassifier()
estimators.append(('AdaBoost', model1))
model2 = GradientBoostingClassifier()
estimators.append(('GradientBoosting', model2))
model3 = RandomForestClassifier()
estimators.append(('RandomForest', model3))
# create the ensemble model
ensemble = VotingClassifier(estimators)
results = model_selection.cross_val_score(ensemble, X, Y, cv=kfold)
print(results.mean())

堆栈跟踪:

代码语言:javascript
复制
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.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-16 14:05:16

你的台词是:

代码语言:javascript
复制
    X = array[:,:]
    Y = array[:,:]

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

您需要选择(只选择一个列)作为Y

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

然后,您应该将上面的行更改为:

代码语言:javascript
复制
X = values[:,:-1]
Y = values[:,-1:]

这应该可以解决你的错误。错误的基本含义是:,我不支持Y中的多个列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53802807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档