支持向量机预测python代码,包含'高程', '起伏度', '桥梁长', '道路长', '平均坡度', '平均地温', 'T小于0', '相态'特征变量和一个因变量“交通风险”,输入一个excel表格自动划分训练集和验证集,训练完后输入新的excel表格数据进行预测,最后输出新的excel表格。同时输出精度和混淆看、矩阵
时间: 2023-08-06 14:20:31 浏览: 92
以下是支持向量机预测python代码的实现过程,包含特征变量和一个因变量“交通风险”,输入一个excel表格自动划分训练集和验证集,训练完后输入新的excel表格数据进行预测,最后输出新的excel表格。同时输出精度和混淆矩阵图片文件:
```python
# 导入必要的库
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score, confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt
# 读入excel表格
data = pd.read_excel('data.xlsx')
# 定义特征变量和因变量
features = ['高程', '起伏度', '桥梁长', '道路长', '平均坡度', '平均地温', 'T小于0', '相态']
target = '交通风险'
# 将特征变量和因变量分离出来,并划分训练集和验证集
x_train, x_test, y_train, y_test = train_test_split(data[features], data[target], test_size=0.2, random_state=42)
# 训练支持向量机模型
svm_model = SVC(kernel='linear', C=1, gamma=1)
svm_model.fit(x_train, y_train)
# 预测新的数据
new_data = pd.read_excel('new_data.xlsx')
new_x = new_data[features]
new_y = svm_model.predict(new_x)
new_data[target] = new_y
# 输出新的excel表格
new_data.to_excel('new_data_predicted.xlsx', index=False)
# 计算模型精度
y_pred = svm_model.predict(x_test)
accuracy = accuracy_score(y_test, y_pred)
print('模型精度:', accuracy)
# 绘制混淆矩阵
cm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm, annot=True, fmt='d')
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.show()
```
其中,data.xlsx是包含了特征变量和因变量的excel表格。程序会自动将数据划分为80%的训练集和20%的验证集。new_data.xlsx是用来进行预测的excel表格,只包含特征变量。程序将预测结果添加到了new_data.xlsx中,并输出了一个新的excel表格new_data_predicted.xlsx。输出的精度和混淆矩阵图片文件可以通过程序中的print语句和绘图函数来实现。
阅读全文