gpt4 book ai didi

python - 如何修复 scikit 机器学习中的错误?

转载 作者:行者123 更新时间:2023-11-30 09:35:58 26 4
gpt4 key购买 nike

我正在尝试对具有 1059 行和 4 列的数据集实现机器学习,但在尝试拟合模型时出现以下错误:

knn.fit(myData['RAB'], myData['ETAPE'])

ValueError: Found input variables with inconsistent numbers ofsamples: [1, 1059]

DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17and will raise ValueError in 0.19. Reshape your data either usingX.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1)if it contains a single sample. Also how can I define multiplepredictor variables?

形状的输出为:

(1059, 4)

如何定义多个预测变量?

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.style.use('ggplot')

myData=pd.read_csv('sabmin.csv', sep=';')
print(myData.shape)
knn = KNeighborsClassifier(n_neighbors=6)
knn.fit(myData['RAB'], myData['ETAPE'])

最佳答案

根据sklearn的预期形状,你做错了。

这里:

knn.fit(myData['RAB'], myData['ETAPE'])

看来你给出了一个系列作为输入,一个系列作为输出。可能不是你想要的,因为 sklearn 会将其作为一个具有 1059 个维度的样本。 sklearn 的错误输出与我的猜测相符。

很难知道你到底在做什么,但你至少需要从 (1, 1059) reshape 为 (1059, 1)。但我也希望您想要使用更多列,但我不知道。

或者,您可以提前创建一个 numpy 矩阵以使其更容易(myData.as_matrix())(我更多的是使用 sklearn 的基于 numpy 的用户;但很多人使用 pandas 因为这种基于名称的索引)。

前者类似于:

knn.fit(myData['RAB'].reshape(-1, 1), myData['ETAPE'])

我真的建议阅读 sklearn 的文档(有史以来最好的文档之一),可能还有 pandas 和 numpy 的文档,以了解到底发生了什么。

您可能会发现 sklearn 的大量示例大多基于 numpy 输入。这对于初学者来说更容易,因为使用 pandas 又增加了一层复杂性(DataFrames、Series,...)。

关于python - 如何修复 scikit 机器学习中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42832807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com