from sklearn.datasets import load_breast_cancer from sklearn.metrics import accuracy_score from sklearn.model_selection import train_test_split from sklearn.pipeline import make_pipeline from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC cancer = load_breast_cancer() X = cancer.data y = cancer.target target_names = cancer.target_names X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.25, random_state=42, stratify=y, ) model = make_pipeline( StandardScaler(), SVC(kernel="rbf", C=1.0, gamma="scale"), ) model.fit(X_train, y_train) predictions = model.predict(X_test) svc = model.named_steps["svc"] print(f"train rows: {X_train.shape[0]}") print(f"test rows: {X_test.shape[0]}") print(f"kernel: {svc.kernel}") print(f"support vectors per class: {svc.n_support_.tolist()}") print(f"held-out accuracy: {accuracy_score(y_test, predictions):.3f}") print(f"first predictions: {target_names[predictions[:5]].tolist()}") print(f"first actual labels: {target_names[y_test[:5]].tolist()}")