在Logistic回归中微调参数

西蒙·基利

我正在使用在文本列上运行的tf-idf运行逻辑回归。这是我在逻辑回归中使用的唯一列。如何确保对此参数进行最佳调整?

我希望能够执行一组步骤,这些步骤最终将使我说我的Logistic回归分类器正在尽可能地运行。

from sklearn import metrics,preprocessing,cross_validation
from sklearn.feature_extraction.text import TfidfVectorizer
import sklearn.linear_model as lm
import pandas as p
loadData = lambda f: np.genfromtxt(open(f, 'r'), delimiter=' ')

print "loading data.."
traindata = list(np.array(p.read_table('train.tsv'))[:, 2])
testdata = list(np.array(p.read_table('test.tsv'))[:, 2])
y = np.array(p.read_table('train.tsv'))[:, -1]

tfv = TfidfVectorizer(min_df=3, max_features=None, strip_accents='unicode',
                      analyzer='word', token_pattern=r'\w{1,}', 
                      ngram_range=(1, 2), use_idf=1, smooth_idf=1, 
                      sublinear_tf=1)

rd = lm.LogisticRegression(penalty='l2', dual=True, tol=0.0001, 
                           C=1, fit_intercept=True, intercept_scaling=1.0, 
                           class_weight=None, random_state=None)

X_all = traindata + testdata
lentrain = len(traindata)

print "fitting pipeline"
tfv.fit(X_all)
print "transforming data"
X_all = tfv.transform(X_all)

X = X_all[:lentrain]
X_test = X_all[lentrain:]

print "20 Fold CV Score: ", np.mean(cross_validation.cross_val_score(rd, X, y, cv=20, scoring='roc_auc'))

print "training on full data"
rd.fit(X, y)
pred = rd.predict_proba(X_test)[:, 1]
testfile = p.read_csv('test.tsv', sep="\t", na_values=['?'], index_col=1)
pred_df = p.DataFrame(pred, index=testfile.index, columns=['label'])
pred_df.to_csv('benchmark.csv')
print "submission file created.."
lennon310

您可以使用网格搜索来找到最C适合您的价值。基本上较小的值C指定更强的正则化。

>>> param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000] }
>>> clf = GridSearchCV(LogisticRegression(penalty='l2'), param_grid)
GridSearchCV(cv=None,
             estimator=LogisticRegression(C=1.0, intercept_scaling=1,   
               dual=False, fit_intercept=True, penalty='l2', tol=0.0001),
             param_grid={'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]})

有关您的应用程序的更多详细信息,请参见GridSearchCv文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Logistic回归中的错误图

来自分类Dev

Python SKLearn Logistic回归中的虚拟变量

来自分类Dev

Logistic回归中的不同梯度计算

来自分类Dev

在Logistic回归中使用排名数据

来自分类Dev

Logistic回归中的成本函数得出NaN作为结果

来自分类Dev

在sklearn logistic回归中如何选择初始偏差值?

来自分类Dev

在Logistic回归中使用排名数据

来自分类Dev

使用theano在logistic回归中广播共享变量

来自分类Dev

在线岭回归中的正则化参数

来自分类Dev

如何在Logistic回归中正确使用量表

来自分类Dev

让观星者打印多项式Logistic回归中的观测值数量

来自分类Dev

使用R在Logistic回归中获取交互的特定组合作为变量

来自分类Dev

AttributeError:“ str”对象在二进制Logistic回归中没有属性“ decode”

来自分类Dev

pmg回归中的错误

来自分类Dev

Logistic回归-class_weight平衡vs dict参数

来自分类Dev

线性回归中的负系数

来自分类Dev

sklearn 逻辑回归中的困惑

来自分类Dev

python logistic回归(入门)

来自分类Dev

在R中回归中解释错误消息

来自分类Dev

估计回归中的后验预测

来自分类Dev

如何在逻辑回归中避免NaN?

来自分类Dev

提取线性回归中的离群指标

来自分类Dev

python岭回归中的方差膨胀因子

来自分类Dev

线性回归中的梯度下降出错

来自分类Dev

对数回归中估计系数的方向

来自分类Dev

altair:在回归中访问rSquared值

来自分类Dev

Firth的逻辑回归中的错误消息

来自分类Dev

在分段回归中选择断点数

来自分类Dev

多元线性回归中的特征选择