Réglage fin des paramètres de la Régression Logistique

Je suis en cours d'exécution d'une régression logistique avec un tf-idf être couru sur une colonne de texte. C'est la seule colonne, j'utilise la régression logistique. Comment puis-je m'assurer que les paramètres pour ce sont à l'écoute aussi bien que possible?

Je voudrais être en mesure de courir à travers un ensemble de mesures qui, finalement, permettez-moi de dire que mon Régression Logistique classificateur est en cours d'exécution ainsi qu'il le peut.

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.."
  • Pourriez-vous expliquer mieux ce que vous essayez d'atteindre? Ce hyperparameters sont que vous essayez de régler? La régression logistique n'a pas de hyperparameters.
  • Des excuses pour ne pas être clair. Je veux juste vous assurer que les paramètres que je passe dans mon Régression Logistique sont les meilleures possibles. Je voudrais être en mesure de courir à travers un ensemble de mesures qui, finalement, permettez-moi de dire que mon Régression Logistique classificateur est en cours d'exécution ainsi qu'il le peut.
  • scikit-learn de régression logistique prend plusieurs paramètres de régularisation.
  • Il n'est donc pas de régression logistique, mais son une L1 ou L2 régularisé version?
  • Régression logistique dans scikit-learn a aussi un C paramètre qui contrôle la rareté du modèle.
InformationsquelleAutor Simon Kiely | 2014-02-16