【发布时间】:2020-05-03 10:22:07
【问题描述】:
我是机器学习新手,在我阅读的书籍和文档中,总分值介于 0 和 1 之间,表示准确度介于 0% 和 100% 之间。
在我自己的 scikit-learn 机器学习代码中,我得到的分数值介于 -750.880810 和 5154.771036 之间,这让我很困惑。
>>> pipe = Pipeline([("scaler", MinMaxScaler()), ("svr", SVR())])
>>> param_grid = {'svr__C':[0.1, 1, 5],
'svr__epsilon':[0.001, 0.01]}
>>> grid = GridSearchCV(estimator=pipe,
param_grid=param_grid,
cv=GroupKFold(n_splits=24)
)
>>> grid.fit(X, y, groups)
GridSearchCV(cv=GroupKFold(n_splits=24), error_score=nan,
estimator=Pipeline(memory=None,
steps=[('scaler',
MinMaxScaler(copy=True,
feature_range=(0, 1))),
('svr',
SVR(C=1.0, cache_size=200, coef0=0.0,
degree=3, epsilon=0.1,
gamma='scale', kernel='rbf',
max_iter=-1, shrinking=True,
tol=0.001, verbose=False))],
verbose=False),
iid='deprecated', n_jobs=None,
param_grid={'svr__C': [0.1, 1, 5], 'svr__epsilon': [0.001, 0.01]},
pre_dispatch='2*n_jobs', refit=True, return_train_score=False,
scoring=None, verbose=0)
>>> grid.best_score_
-750.880810
谁能给我解释一下?
编辑:
我的输入数据是发动机的测量值。
我有 12 次不同的引擎故障,每个故障都测量两次 => 12x2 = 24 个不同的组(我也会尝试 12 个组)。每个组包括:
- X 数据:13 种不同的特征(温度、压力、电压等),每组 1200 个样本
- y 数据:1 个特征(压力),每组 1200 个样本
【问题讨论】:
-
你能创建一些可重现的例子吗?也请用
n_splits=24添加GroupKfold的原因。 -
为什么输入和输出变量都存在压力?
-
对不起,误解,这是两种不同的压力。为了清楚起见:输入数据中不存在输出变量。
标签: python scikit-learn svm gridsearchcv