1. 理解逻辑回归和SVM
之前所写的笔记
2. 逻辑回归实战
lr = LogisticRegression(C=120,dual=True)
lr.fit(x_train,y_train)
y_test = lr.predict(x_test)
3. 线性SVM实战
加入网格搜索,代码如下:
params = {'penalty':['l2','l1'],'C':[2.0,3.0,5.0]}
svc = LinearSVC(dual=False)
clf = GridSearchCV(estimator=svc, param_grid=params, scoring = 'f1_macro', n_jobs=1, cv=3, verbose=3)
clf.fit(x_train,y_train)
print('最优参数:{}'.format(clf.best_params_))
y_test = clf.predict(x_test)
结果如下:
模型训练
Fitting 3 folds for each of 6 candidates, totalling 18 fits
[CV] C=2.0, penalty=l2 ...............................................
[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.
[CV] ...... C=2.0, penalty=l2, score=0.7705630453658429, total=10.2min
[Parallel(n_jobs=1)]: Done 1 out of 1 | elapsed: 10.3min remaining: 0.0s
[CV] C=2.0, penalty=l2 ...............................................
[CV] ...... C=2.0, penalty=l2, score=0.7708993095756499, total= 9.7min
[Parallel(n_jobs=1)]: Done 2 out of 2 | elapsed: 20.1min remaining: 0.0s
[CV] C=2.0, penalty=l2 ...............................................
[CV] ...... C=2.0, penalty=l2, score=0.7658830970101473, total= 9.7min
[CV] C=2.0, penalty=l1 ...............................................
[CV] ...... C=2.0, penalty=l1, score=0.7613864241436358, total=11.9min
[CV] C=2.0, penalty=l1 ...............................................
[CV] ...... C=2.0, penalty=l1, score=0.7594095803538317, total=11.8min
[CV] C=2.0, penalty=l1 ...............................................
[CV] ...... C=2.0, penalty=l1, score=0.7544041642010249, total=11.6min
[CV] C=3.0, penalty=l2 ...............................................
[CV] ...... C=3.0, penalty=l2, score=0.7695717152100418, total=11.2min
[CV] C=3.0, penalty=l2 ...............................................
[CV] ....... C=3.0, penalty=l2, score=0.770736739847966, total=11.1min
[CV] C=3.0, penalty=l2 ...............................................
[CV] ...... C=3.0, penalty=l2, score=0.7659710587250825, total=11.3min
[CV] C=3.0, penalty=l1 ...............................................
[CV] ...... C=3.0, penalty=l1, score=0.7582708388619948, total=12.2min
[CV] C=3.0, penalty=l1 ...............................................
[CV] ...... C=3.0, penalty=l1, score=0.7551676096675127, total=12.0min
[CV] C=3.0, penalty=l1 ...............................................
[CV] ...... C=3.0, penalty=l1, score=0.7478424537131836, total=11.8min
[CV] C=5.0, penalty=l2 ...............................................
[CV] ...... C=5.0, penalty=l2, score=0.7690069285162097, total=12.5min
[CV] C=5.0, penalty=l2 ...............................................
[CV] ...... C=5.0, penalty=l2, score=0.7694686804389069, total=13.4min
[CV] C=5.0, penalty=l2 ...............................................
[CV] ...... C=5.0, penalty=l2, score=0.7654598442185017, total=13.4min
[CV] C=5.0, penalty=l1 ...............................................
[CV] ...... C=5.0, penalty=l1, score=0.7478587997762522, total=11.4min
[CV] C=5.0, penalty=l1 ...............................................
[CV] ...... C=5.0, penalty=l1, score=0.7451328071574291, total=11.0min
[CV] C=5.0, penalty=l1 ...............................................
[CV] ...... C=5.0, penalty=l1, score=0.7394154016122579, total=11.2min
[Parallel(n_jobs=1)]: Done 18 out of 18 | elapsed: 208.4min finished
最优参数:{'C': 2.0, 'penalty': 'l2'}