Mushroom Classification with SVM: Visualization of Results
import pandas as pd from sklearn.preprocessing import LabelEncoder
读取数据集
data = pd.read_csv('mushrooms.csv')
将分类标签转换为0和1
label_encoder = LabelEncoder() data['class'] = label_encoder.fit_transform(data['class'])
将离散属性进行编码转换
for column in data.columns[1:]: data[column] = LabelEncoder().fit_transform(data[column])
from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report, confusion_matrix
划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data.drop('class', axis=1), data['class'], test_size=0.3, random_state=42)
from sklearn.svm import SVC
svm = SVC(kernel='rbf', C=10) svm.fit(X_train, y_train) y_pred = svm.predict(X_test)
输出分类报告和混淆矩阵
print('Classification Report:\n', classification_report(y_test, y_pred)) print('Confusion Matrix:\n', confusion_matrix(y_test, y_pred))
import seaborn as sns import matplotlib.pyplot as plt
绘制混淆矩阵热力图
sns.heatmap(confusion_matrix(y_test, y_pred), annot=True, cmap='Blues') plt.title('Confusion Matrix') plt.xlabel('Predicted Class') plt.ylabel('True Class') plt.show()
绘制分类报告柱状图
report = classification_report(y_test, y_pred, output_dict=True) report_df = pd.DataFrame(report).transpose() report_df.drop('support', axis=1, inplace=True) report_df.plot(kind='bar', rot=0) plt.title('Classification Report') plt.xlabel('Class') plt.ylabel('Score') plt.show()
原文地址: https://www.cveoy.top/t/topic/oh0l 著作权归作者所有。请勿转载和采集!