Numpy数组转换错误

我有一个包含字符串和浮点数据的数据集。NumPy试图将所有数据转换为浮点数,导致错误“无法将字符串转换为浮点数”。

错误追踪:

Traceback (most recent call last):  File "C:/Users/nolan/OneDrive/Desktop/digits.py", line 37, in <module>    knn.fit(X_train ,y_train)  File "C:\Program Files\Python\lib\site-packages\sklearn\neighbors\base.py", line 765, in fit    X, y = check_X_y(X, y, "csr", multi_output=True)  File "C:\Program Files\Python\lib\site-packages\sklearn\utils\validation.py", line 573, in check_X_y    ensure_min_features, warn_on_dtype, estimator)  File "C:\Program Files\Python\lib\site-packages\sklearn\utils\validation.py", line 433, in check_array    array = np.array(array, dtype=dtype, order=order, copy=copy)ValueError: could not convert string to float: ' Peru'

所有数据看起来像这样:

39, State-gov, 77516, Bachelors, 13, Never-married, Adm-clerical, Not-in-family, White, Male, 2174, 0

有没有办法设置NumPy来保存这些数据并避免转换错误?


回答:

这里并没有NumPy转换错误;问题仅仅是k-nn算法无法处理分类特征。虽然这在scikit-learn的文档中没有明确提到,但如果你对算法的工作原理有一点基本的了解,就会明白这一点。该算法的工作原理是计算数据点之间的距离,以便随后找到k个最近的点,因此得名。由于没有简单且通用的方法来计算分类特征之间的距离,因此在这种情况下该算法根本不适用。

另见Data Science Stack Exchange上的这个回答

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注