python 分类器有哪些_sklearn常见分类器的效果比较

importnumpy as npimportmatplotlib.pyplot as pltfrom matplotlib.colors importListedColormap#from sklearn.model_selection import train_test_split #废弃!!

from sklearn.cross_validation importtrain_test_splitfrom sklearn.preprocessing importStandardScalerfrom sklearn.datasets importmake_moons, make_circles, make_classificationfrom sklearn.neural_network importBernoulliRBMfrom sklearn.neighbors importKNeighborsClassifierfrom sklearn.svm importSVCfrom sklearn.gaussian_process importGaussianProcessfrom sklearn.tree importDecisionTreeClassifierfrom sklearn.ensemble importRandomForestClassifier, AdaBoostClassifierfrom sklearn.naive_bayes importGaussianNBfrom sklearn.discriminant_analysis importQuadraticDiscriminantAnalysis

h= .02 #step size in the mesh

names= ["Nearest Neighbors", "Linear SVM", "RBF SVM","Decision Tree", "Random Forest", "AdaBoost","Naive Bayes", "QDA", "Gaussian Process","Neural Net", ]

classifiers=[

KNeighborsClassifier(3),

SVC(kernel="linear", C=0.025),

SVC(gamma=2, C=1),

DecisionTreeClassifier(max_depth=5),

RandomForestClassifier(max_depth=5, n_estimators=10, max_features=1),

AdaBoostClassifier(),

GaussianNB(),

QuadraticDiscriminantAnalysis(),#GaussianProcess(),

#BernoulliRBM(),

]

X, y= make_classification(n_features=2, n_redundant=0, n_informative=2,

random_state=1, n_clusters_per_class=1)

rng= np.random.RandomState(2)

X+= 2 * rng.uniform(size=X.shape)

linearly_separable=(X, y)

datasets= [make_moons(noise=0.3, random_state=0),

make_circles(noise=0.2, factor=0.5, random_state=1),

linearly_separable

]

figure= plt.figure(figsize=(27, 9))

i= 1

#iterate over datasets

for ds_cnt, ds inenumerate(datasets):#preprocess dataset, split into training and test part

X, y =ds

X=StandardScaler().fit_transform(X)

X_train, X_test, y_train, y_test=\

train_test_split(X, y, test_size=.4, random_state=42)

x_min, x_max= X[:, 0].min() - .5, X[:, 0].max() + .5y_min, y_max= X[:, 1].min() - .5, X[:, 1].max() + .5xx, yy=np.meshgrid(np.arange(x_min, x_max, h),

np.arange(y_min, y_max, h))#just plot the dataset first

cm =plt.cm.RdBu

cm_bright= ListedColormap(['#FF0000', '#0000FF'])

ax= plt.subplot(len(datasets), len(classifiers) + 1, i)if ds_cnt ==0:

ax.set_title("Input data")#Plot the training points

ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright)#and testing points

ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright, alpha=0.6)

ax.set_xlim(xx.min(), xx.max())

ax.set_ylim(yy.min(), yy.max())

ax.set_xticks(())

ax.set_yticks(())

i+= 1

#iterate over classifiers

for name, clf inzip(names, classifiers):

ax= plt.subplot(len(datasets), len(classifiers) + 1, i)

clf.fit(X_train, y_train)

score=clf.score(X_test, y_test)#Plot the decision boundary. For that, we will assign a color to each

#point in the mesh [x_min, m_max]x[y_min, y_max].

if hasattr(clf, "decision_function"):

Z=clf.decision_function(np.c_[xx.ravel(), yy.ravel()])else:

Z= clf.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]#Put the result into a color plot

Z =Z.reshape(xx.shape)

ax.contourf(xx, yy, Z, cmap=cm, alpha=.8)#Plot also the training points

ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright)#and testing points

ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright,

alpha=0.6)

ax.set_xlim(xx.min(), xx.max())

ax.set_ylim(yy.min(), yy.max())

ax.set_xticks(())

ax.set_yticks(())if ds_cnt ==0:

ax.set_title(name)

ax.text(xx.max()- .3, yy.min() + .3, ('%.2f' % score).lstrip('0'),

size=15, horizontalalignment='right')

i+= 1plt.tight_layout()

plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值