在 Python 中使用 sklearn 库实现随机回归时的值错误



当新的观测值被填充时,需要自动更新训练集。

我已经使用Python中的sklearn库使用随机梯度下降算法。我将数据帧转换为数组,但转换时仍然遇到问题。我执行以下操作:

import pandas as pd
from pandas import DataFrame
from sklearn.linear_model import SGDClassifier
#Collecting Numeric data
data = pd.read_csv('/home/system/Documents/Heena/Regression/Data.csv')
df = pd.DataFrame(data, columns = ['years_of_exp', 'company',   'location', 'education','score'])
xSGD = df[['years_of_exp', 'company', 'location', 'education']]
ySGD = df['score']
#Conversion of dataframe to numpy array
X = np.asarray(xSGD)
Y = np.asarray(ySGD)
clf = SGDClassifier(loss="hinge", penalty="l2", max_iter=5)
clf.fit(xSGD,ySGD) 

错误:我希望它的输出必须适合模型。但实际输出是

ValueError.
 File "/home/system/anaconda3/lib/python3.7/site-packages/sklearn/utils/multiclass.py", line 96, in unique_labels
    raise ValueError("Unknown label type: %s" % repr(ys))
ValueError: Unknown label type: (array([1.  , 2.  , 3.  , 3.8 , 4.  , 4.25, 5.  ]),)

从堆栈跟踪中,我看到了两个问题:

  1. ySGD是一个元组,但它应该是一个 numpy 数组(可能是该元组的第一个也是唯一的元素)
  2. 您使用的是SGDClassifier,但标签是实数(在数据帧中称为"分数")。这表明您的任务实际上是一个回归问题,因此您应该改用SGDRegressor

相关内容

  • 没有找到相关文章

最新更新