【发布时间】:2019-04-12 16:57:09
【问题描述】:
我是 python 和机器学习的新手,我试图查看投票分类器的 skear 文档,老实说,我迷路了。
我已经在 for 循环中为决策树执行了 bagging,但是我被困在必须执行投票才能做出最终决定的地方 每个数据样本,然后计算最终结果的准确性。
我收到TypeError: zip argument #1 must support iteration。
下面是我的代码
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.utils import resample
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.35, random_state=3)
predictions = []
for i in range(1,20):
bootstrap_size = int(0.8*len(X_train))
x_bag, y_bag = resample(X_train,y_train, n_samples = bootstrap_size , random_state=i , replace = True)
Base_DecisionTree = DecisionTreeClassifier(random_state=3)
Base_DecisionTree.fit(x_bag, y_bag)
y_predict = Base_DecisionTree.predict(X_test)
accuracy = accuracy_score(y_test, y_predict)
predictions.append(accuracy)
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
votingClass = VotingClassifier(predictions)
#print(votingClass)
votingClass.fit(X_train, y_train)
confidence = votingClass.score(X_test, y_test)
print('accuracy:',confidence)
【问题讨论】:
-
你能指定哪一行代码产生了错误吗?我不熟悉 sklearn 的决策树库,但您确定您在函数中传递了正确的标签集: Base_DecisionTree.fit(bag, y_train) 吗?据我了解,袋子是原始火车的子集,而 y_train 是原始训练集的标签。我希望 y_train 也是与样本匹配的标签的子集。
-
@Roberto 很抱歉我粘贴了旧代码,很抱歉我已经更新了它。给我错误的行是
votingClass.fit(X_train, y_train) -
别担心,感谢更新。我已经发布了答案
标签: python-3.x machine-learning decision-tree ensemble-learning