软支持向量机实现白葡萄酒质量数据分析并产生最终结果图像Python代码
时间: 2024-04-25 22:06:49 浏览: 149
下面是使用Python实现的白葡萄酒质量数据分析代码,包括数据预处理、模型训练和测试以及结果可视化。
首先,导入必要的库和数据集:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import classification_report
# 导入数据集
data = pd.read_csv('winequality-white.csv', sep=';')
```
接下来,对数据进行预处理,包括将数据分为特征和标签,将标签二值化(将质量分数大于等于7的样本标记为1,小于7的标记为0),并将数据集划分为训练集和测试集:
```python
# 将数据分为特征和标签
X = data.iloc[:, :-1]
y = np.where(data['quality']>=7, 1, 0)
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
然后,使用软支持向量机模型进行训练和测试,并输出分类报告:
```python
# 使用软支持向量机模型进行训练和测试
svc = SVC(kernel='linear', C=0.1, probability=True)
svc.fit(X_train, y_train)
y_pred = svc.predict(X_test)
# 输出分类报告
print(classification_report(y_test, y_pred))
```
最后,绘制ROC曲线和混淆矩阵,进行结果可视化:
```python
from sklearn.metrics import plot_roc_curve, plot_confusion_matrix
# 绘制ROC曲线
plot_roc_curve(svc, X_test, y_test)
plt.show()
# 绘制混淆矩阵
plot_confusion_matrix(svc, X_test, y_test)
plt.show()
```
完整代码如下:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import classification_report, plot_roc_curve, plot_confusion_matrix
# 导入数据集
data = pd.read_csv('winequality-white.csv', sep=';')
# 将数据分为特征和标签
X = data.iloc[:, :-1]
y = np.where(data['quality']>=7, 1, 0)
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 使用软支持向量机模型进行训练和测试
svc = SVC(kernel='linear', C=0.1, probability=True)
svc.fit(X_train, y_train)
y_pred = svc.predict(X_test)
# 输出分类报告
print(classification_report(y_test, y_pred))
# 绘制ROC曲线
plot_roc_curve(svc, X_test, y_test)
plt.show()
# 绘制混淆矩阵
plot_confusion_matrix(svc, X_test, y_test)
plt.show()
```
阅读全文