import numpy as np from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score # 数据集 data = np.array([ ['1000025', 'b', 5, 1, 1, 1, 2, 1, 3, 1, 1], ['1002945', 'b', 5, 4, 4, 5, 7, 10, 3, 2, 1], ['1015425', 'b', 3, 1, 1, 1, 2, 2, 3, 1, 1], ['1016277', 'b', 6, 8, 8, 1, 3, 4, 3, 7, 1], ['1017023', 'b', 4, 1, 1, 3, 2, 1, 3, 1, 1], ['1017122', 'm', 8, 10, 10, 8, 7, 10, 9, 7, 1], ['1018099', 'b', 1, 1, 1, 1, 2, 10, 3, 1, 1], ['1018561', 'b', 2, 1, 2, 1, 2, 1, 3, 1, 1] ]) # 将字符型数据转换为数值型数据 data[data == 'b'] = 0 data[data == 'm'] = 1 data = data.astype(float) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(data[:, 2:], data[:, 1], test_size=0.3, random_state=42) # 创建支持向量机分类器 clf = SVC(kernel='linear', random_state=42) clf.fit(X_train, y_train) # 对测试集进行预测 y_pred = clf.predict(X_test) # 计算分类器的准确性 confusion = confusion_matrix(y_test, y_pred) accuracy = accuracy_score(y_test, y_pred) precision = precision_score(y_test, y_pred) recall = recall_score(y_test, y_pred) print('混淆矩阵:\n', confusion) print('准确率:', accuracy) print('精确率:', precision) print('召回率:', recall)
时间: 2024-04-29 18:19:57 浏览: 58
SVM.zip_SVM Iris分类_UCI SVM_iris_svm预测_uci svm
这段代码是一个简单的支持向量机分类器的实现示例,主要包括以下步骤:
1. 定义数据集:使用 numpy 数组定义了一个包含肿瘤数据的数据集。
2. 数据预处理:将字符型数据转换为数值型数据,并将数据集划分为训练集和测试集。
3. 创建分类器:使用 sklearn 库中的 SVC 类创建一个支持向量机分类器,并使用训练集进行训练。
4. 预测和评估:使用测试集进行预测,并计算分类器的准确性、精确率和召回率等指标。
这段代码中使用的是线性核函数,也可以尝试使用其他类型的核函数进行分类。此外,还可以使用交叉验证等方法来评估分类器的性能。
阅读全文