其实就是为了查看不同分类算法在相同数据源中的应用是否会产生不同的决策边界。以及不同的决策边界是否有收敛值。
使用sklearn自带的数据包iris。
在线性可分离数据集上训练“LinearSVC”。然后在同一个数据集上训练一个“SVC”和一个“sgdclassizer”。
导入数据:
from sklearn import datasets
iris = datasets.load_iris()
X = iris["data"][:, (2, 3)] # 使用花瓣长、宽属性
y = iris["target"]
setosa_or_versicolor = (y == 0) | (y == 1)
X = X[setosa_or_versicolor]
y = y[setosa_or_versicolor]
#建立模型
from sklearn.svm import SVC, LinearSVC
from sklearn.linear_model import SGDClassifier
from sklearn.preprocessing import StandardScaler
C = 5
alpha = 1 / (C * len(X))
lin_clf = LinearSVC(loss="hinge", C=C, random_state=42)#线性svc模型
svm_clf = SVC(kernel="linear", C=C)#svc模型选取内核为线性的线性Svc模型
sgd_clf = SGDClassifier(loss="hinge", learning_rate="con