为什么算法不接受浮点数?



任务: 有两位老师。他们为学生的作业打分。有一个最终成绩。如果他们给出相同的成绩,则等于教师的成绩。或者,如果老师的成绩不同,则最终成绩为-1。 我想教计算机看到这个逻辑。

数据

  1. 评分1 - 首次教师评估
  2. 评分2 - 第二次教师评估
  3. 结果 - 最终评估

示例

0,1; 0,1 => 0,1

0,7; 0,7 => 0,7

0,3; 0,2 => -1

我的代码:

import pandas
MyData = pandas.read_excel("train.xlsx")
input_data = MyData.drop("Result", axis=1)
target = MyData.Result
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(input_data, target)

在那之后,我得到了下一个错误。如果我所有的估计都是整数,则不存在此错误。但我必须使用分数。

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-51-433a918946a9> in <module>
----> 1 model.fit(input_data, target)
~anaconda3libsite-packagessklearnensemble_forest.py in fit(self, X, y, sample_weight)
319         self.n_outputs_ = y.shape[1]
320 
--> 321         y, expanded_class_weight = self._validate_y_class_weight(y)
322 
323         if getattr(y, "dtype", None) != DOUBLE or not y.flags.contiguous:
~anaconda3libsite-packagessklearnensemble_forest.py in _validate_y_class_weight(self, y)
539 
540     def _validate_y_class_weight(self, y):
--> 541         check_classification_targets(y)
542 
543         y = np.copy(y)
~anaconda3libsite-packagessklearnutilsmulticlass.py in check_classification_targets(y)
167     if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',
168                       'multilabel-indicator', 'multilabel-sequences']:
--> 169         raise ValueError("Unknown label type: %r" % y_type)
170 
171 
ValueError: Unknown label type: 'continuous'

附言我的数据在这里。

如何使用小数?

您正在尝试将浮点值传递给分类器。请尝试使用决策树回归器,您可以在其中传递整数值。

下面是一个示例代码:

import pandas as pd
df = pd.read_csv(r'train.csv')
X = df.iloc[:, :1].values
y = df.iloc[:, 2].values
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
from sklearn.tree import DecisionTreeRegressor 
DTR = DecisionTreeRegressor()
DTR.fit(X_train, y_train)

最新更新