【发布时间】:2021-09-14 15:20:59
【问题描述】:
我有一个这样的数据框
time label
-----------------------
morning good
afternoon good
night bad
night okay
我想为要在 svm 交叉验证中使用的数据应用 onehotencoding。我尝试如下
from sklearn.model_selection import ShuffleSplit
from sklearn.preprocessing import OneHotEncoder
from sklearn.svm import SVC
x = ds_df['time']
y = ds_df['label']
enc = OneHotEncoder()
X_vec = enc.fit_transform(X)
model = SVC(kernel='linear')
cv = ShuffleSplit(n_splits=5, test_size=0.2, random_state=69)
scores = cross_val_score(model, X_vec, y, cv=cv, scoring='precision_weighted')
然后,我收到一条警告
UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
_warn_prf(average, modifier, msg_start, len(result))
我该怎么办?我哪里做错了?
【问题讨论】:
-
也许按照错误所说的去做并使用 zero_division 参数?
标签: python machine-learning scikit-learn one-hot-encoding