我解决了以下问题:
我们收集了更多关于猫和狗的数据,并且已经准备好训练我们的机器人来分类了!下载培训数据集https://stepik.org/media/attachments/course/4852/dogs_n_cats.csv并在其上培训决策树。然后,从赋值中下载数据集,并预测哪些观测属于谁。在数据集中输入狗的数量。在赋值中允许某些错误。
我训练了模特:
import sklearn
import pandas as pd
import numpy as nm
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import tree
from sklearn.model_selection import train_test_split, cross_val_score
df = pd.read_csv('dogs_n_cats.csv')
X = df.drop(['Вид', 'Шерстист'], axis=1)
y = df['Вид']
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.67, random_state=42)
clf = tree.DecisionTreeClassifier(criterion='entropy', max_depth=4)
clf.fit(X_train, y_train)之后,我从任务https://stepik.org/api/attempts/540562013/file下载了数据集,并开始确定数据集中的狗数:
df2 = pd.read_json('we.txt')
X2 = df.drop(['Вид', 'Шерстист'], axis=1)
y2 = df['Вид']
X_train2, X_test2, y_train2, y_test2 = train_test_split(X, y, train_size=0.67, random_state=42)
df2_predict = clf.predict(X2)
l = list(df2_predict)
l.count('собачка')任务中的狗数量应该是49条,但是在执行l.count (“狗”)之后,我得到了500条。我训练模特的时候做错了什么?
发布于 2022-01-06 11:42:22
这似乎是个错误。在您的代码段中,您使用第一个dataframe来创建X2。
我无法访问第二个文件,但是更改这一行应该可以做到这一点:
X2 = df.drop(['Вид', 'Шерстист'], axis=1)
-->
X2 = df2.drop(['Вид', 'Шерстист'], axis=1)此外,您已经获得了一个培训集和测试集,因此不需要调用train_test_split。
https://stackoverflow.com/questions/70604052
复制相似问题