我正在尝试各种SVM变体scikit-learn与CountVectorizer和HashingVectorizer.他们在不同的例子中使用fit或fit_transform,这让我很困惑.
任何澄清都会非常荣幸.
我正在使用带有分层CV的scikit-learn来比较一些分类器.我正在计算:准确性,召回,auc.
我用于参数优化GridSearchCV的5 CV.
RandomForestClassifier(warm_start= True, min_samples_leaf= 1, n_estimators= 800, min_samples_split= 5,max_features= 'log2', max_depth= 400, class_weight=None)
Run Code Online (Sandbox Code Playgroud)
是GridSearchCV的best_params.
我的问题,我想我真的很适合.例如:
具有标准差的随机森林(+/-)
- 精度:0.99(+/- 0.06)
- 灵敏度:0.94(+/- 0.06)
- 特异性:0.94(+/- 0.06)
- B_accuracy:0.94(+/- 0.06)
- AUC:0.94(+/- 0.11)
具有标准偏差的Logistic回归(+/-)
- 精度:0.88(+/- 0.06)
- 灵敏度:0.79(+/- 0.06)
- 特异性:0.68(+/- 0.06)
- B_accuracy:0.73(+/- 0.06)
- AUC:0.73(+/- 0.041)
而其他人也看起来像逻辑回归(因此他们看起来并不过分).
我的简历代码是:
for i,j in enumerate(data):
X.append(data[i][0])
y.append(float(data[i][1]))
x=np.array(X)
y=np.array(y)
def SD(values):
mean=sum(values)/len(values)
a=[]
for i in range(len(values)):
a.append((values[i]-mean)**2)
erg=sum(a)/len(values)
SD=math.sqrt(erg)
return SD,mean
for name, clf in zip(titles,classifiers):
# go through all classifiers, compute 10 folds
# the next for loop …Run Code Online (Sandbox Code Playgroud)