我正在研究一个多分类的问题,在scikit中使用神经网络学习,并且我试图弄清楚如何优化我的超参数(层数、感知器和其他东西的数量)。
我发现GridSearchCV是做这件事的方法,但是我使用的代码返回的是平均精度,而我实际上想测试F1分数。有没有人知道我如何编辑这段代码,使它为F1评分工作?
一开始,当我不得不评估精度/准确性时,我认为只要拿出混淆矩阵并得出一个结论就够了,同时不断地尝试和错误地改变神经网络中的层次和感知器的数量。
今天,我发现还有更多的东西:GridSearchCV。我只需要弄清楚如何评估F1评分,因为我需要做一项研究,从神经网络的层次,节点,最终确定其他选择的准确性…
ml
我正在尝试重新计算我在自己的数据上获得的grid.best_score_,但没有成功...因此,我尝试使用传统的数据集,但没有更多的成功。代码如下:
from sklearn import datasets
from sklearn import linear_model
from sklearn.cross_validation import ShuffleSplit
from sklearn import grid_search
from sklearn.metrics import r2_score
import numpy as np
lr = linear_model.Linea
对于多层感知器学习过程之前的特征标准化,我有严重的疑问。
我使用python-3和scikit学习包来实现学习过程和特性的规范化。
正如科学工具包-学习wiki (实用技巧)所建议的那样,我正在用预处理模块进行功能标准化,这意味着我的所有特性都将作为标准的标准规范出现。
问题是,在显示的示例中:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
# Don't cheat - fit only on training data
scaler.fit(X_train)
X_tr
我正在使用sklearn管道来构建Keras自动编码器模型,并使用网格搜索来找到最佳的超参数。如果我使用多层感知器模型进行分类,这很好;但是,在自动编码器中,我需要输出值与输入相同。换句话说,我正在使用管道中的StandardScalar实例来扩展输入值,因此这就引出了我的问题:如何使管道中的StandardScalar实例同时处理输入数据和目标数据,从而使它们最终是相同的?
我提供了一个代码片段作为示例。
from sklearn.datasets import make_classification
from sklearn.preprocessing import StandardSca
我正在使用scickit-learn调优一个模型的超参数。我使用管道将预处理与估计器链接在一起。我的问题的一个简单版本如下所示:
import numpy as np
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
grid = GridSearchCV(m