【问题标题】:What am I doing wrong when training a model?训练模型时我做错了什么?
【发布时间】:2022-01-06 07:58:48
【问题描述】:

我解决了以下问题:`

我们已经收集到更多关于猫和狗的数据,并准备好训练 我们的机器人对它们进行分类!下载训练数据集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('dog') 后我得到 500。我在训练模型时做错了什么?

【问题讨论】:

  • 我们无法下载您的第二个文件。

标签: python pandas scikit-learn


【解决方案1】:

这似乎是一个错字。在您的 sn-p 中,您使用第一个数据帧来创建 X2

我无法访问第二个文件,但更改这一行应该可以解决问题:

X2 = df.drop(['Вид', 'Шерстист'], axis=1)
-->
X2 = df2.drop(['Вид', 'Шерстист'], axis=1)

除此之外,您已经获得了训练集和测试集,因此无需调用 train_test_split

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-29
    • 2020-01-29
    • 2011-01-27
    • 2017-03-27
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多