啊python好难 2023-05-10 15:05 采纳率: 0%
浏览 260
已结题

python运行中提示 ValueError: Found input variables with inconsistent numbers of samples

python运行中提示 ValueError: Found input variables with inconsistent numbers of samples
我的代码如下:

img

img

img

img

运行结果如下:

img

这是我的部分数据:

img

麻烦大家花费一段时间帮忙看一下!非常感激🥹非常感谢🙏我实在是看不懂…麻烦各位啦!

想要给出具体代码怎么改🥹

  • 写回答

7条回答 默认 最新

  • threenewbee 2023-05-10 23:32
    关注
    获得2.25元问题酬金

    你的代码从哪里找来的吧,你看下原作者用的数据,输出下维度,然后你的数据要维度和原来的一致。

    评论
  • 阳光宅男xxb 2023-05-10 23:34
    关注
    获得1.95元问题酬金

    你的这个错误是是由于输入参数变量与样本数不一致导致的。问题出在第160行:

    img


    多半是因为你的数据集的问题,比如feature集和label集的行数不相同,所以解决方法就是找到读取数据文件那里,检查下是不是把数据集的表头也读取进来了导致的

    评论
  • 阿里嘎多学长 2023-05-11 11:39
    关注
    获得0.75元问题酬金

    应该输入数据和标签数据的样本数量不一致导致的吧、跳转一下报错的行号看一下

    评论
  • yy64ll826 2023-05-17 01:58
    关注
    获得1.05元问题酬金
    
    测试图片(train_images)和测试标签(train_labels)的长度必须一致。
    
    也就是说你有60000张训练数据,就必须有60000张标签,这样才可以匹配。
    
    总的来说,二者长度(个数)必须一样即可
    
    评论
  • GIS工具开发 2023-05-11 05:38
    关注
    获得1.05元问题酬金

    根据报错信息的代码行号去检查代码

    评论
  • 极客智能体-在线 2023-05-11 06:51
    关注

    以下答案由GPT-3.5大模型与博主波罗歌共同编写:
    这个错误提示说明在你的训练数据和测试数据中,样本数目(行数)不一致,不能进行训练和预测。解决方法是检查一下你的数据集,确保训练数据和测试数据的样本数目一致。

    在你的代码中,我看到了一些不一致的地方。你先将数据划分为训练集和测试集,然后进行标准化操作。但是,你在测试集上进行了标准化操作,并且使用测试集上的均值和标准差对训练集进行了标准化操作。这是不对的。正确的做法是,先对训练集进行标准化,然后使用训练集上的均值和标准差对测试集进行标准化操作。这样才能保证数据分布的一致性。

    下面是一份修改后的代码,其中包括了上述的更正:

    import pandas as pd
    import numpy as np
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.neighbors import KNeighborsClassifier
    
    # 读入数据
    data = pd.read_csv('data.csv')
    # 划分特征和标签
    X = data.iloc[:, :-1].values
    y = data.iloc[:, -1].values
    # 划分训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
    # 标准化训练集上的特征
    sc_X = StandardScaler()
    X_train = sc_X.fit_transform(X_train)
    # 使用训练集上的均值和方差对测试集进行标准化
    X_test = sc_X.transform(X_test)
    # 训练模型
    classifier = KNeighborsClassifier(n_neighbors=5, metric='minkowski', p=2)
    classifier.fit(X_train, y_train)
    # 预测结果
    y_pred = classifier.predict(X_test)
    # 输出结果
    print(pd.DataFrame(np.column_stack((y_test, y_pred)),columns=['Actual','Predicted']))
    

    希望对你有所帮助!
    如果我的回答解决了您的问题,请采纳!

    展开全部

    评论
  • 百晓生2023 2023-05-11 13:54
    关注
    该回答引用ChatGPT
    这个错误是由于输入变量的样本数量不一致造成的。根据您提供的代码和截图,可能是因为代码中X_train和y_train的样本数不匹配。

    建议您检查一下X_train和y_train的样本数量是否一致。如果数量不一致,请确保它们的数量相等,例如:


    print(X_train.shape)
    print(y_train.shape)

    # 如果发现数量不一致,则可以像下面这样进行处理

    X_train = X_train.iloc[:y_train.shape[0], :]


    这样可以确保X_train和y_train的样本数量保持一致。请尝试一下。
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 修改了问题 5月10日
  • 创建了问题 5月10日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部