相关疑难解决方法(0)

sklearn GridSearchCV with Pipeline

我是新来sklearnPipelineGridSearchCV功能.我正在尝试构建一个管道,首先对我的训练数据进行RandomizedPCA,然后拟合岭回归模型.这是我的代码:

pca = RandomizedPCA(1000, whiten=True)
rgn = Ridge()

pca_ridge = Pipeline([('pca', pca),
                      ('ridge', rgn)])

parameters = {'ridge__alpha': 10 ** np.linspace(-5, -2, 3)}

grid_search = GridSearchCV(pca_ridge, parameters, cv=2, n_jobs=1, scoring='mean_squared_error')
grid_search.fit(train_x, train_y[:, 1:])
Run Code Online (Sandbox Code Playgroud)

我知道RidgeCV函数,但我想尝试Pipeline和GridSearch CV.

我希望网格搜索CV报告RMSE错误,但这似乎不支持sklearn所以我正在使用MSE.但是,它所支持的分数是负数:

In [41]: grid_search.grid_scores_
Out[41]: 
[mean: -0.02665, std: 0.00007, params: {'ridge__alpha': 1.0000000000000001e-05},
 mean: -0.02658, std: 0.00009, params: {'ridge__alpha': 0.031622776601683791},
 mean: -0.02626, std: 0.00008, params: {'ridge__alpha': 100.0}]
Run Code Online (Sandbox Code Playgroud)

显然这对于​​均方误差是不可能的 - 我在这里做错了什么?

python scikit-learn

24
推荐指数
2
解决办法
2万
查看次数

为什么logloss是负面的?

我只是将sklearn中的日志丢失应用于逻辑回归:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.log_loss.html

我的代码看起来像这样:

def perform_cv(clf, X, Y, scoring):
    kf = KFold(X.shape[0], n_folds=5, shuffle=True)
    kf_scores = []
    for train, _ in kf:
        X_sub = X[train,:]
        Y_sub = Y[train]
        #Apply 'log_loss' as a loss function
        scores = cross_validation.cross_val_score(clf, X_sub, Y_sub, cv=5, scoring='log_loss')
        kf_scores.append(scores.mean())
    return kf_scores
Run Code Online (Sandbox Code Playgroud)

但是,我想知道为什么由此产生的对数损失是负的.我希望它们是正面的,因为在文档中(参见上面的链接),日志丢失乘以-1,以便将其变为正数.

我在这里做错了吗?

metric loss scikit-learn

9
推荐指数
2
解决办法
1万
查看次数

标签 统计

scikit-learn ×2

loss ×1

metric ×1

python ×1