第1个回答 2023-01-29
以下是Python实现多元支持向量机多元回归模型的代码:
# 导入必要的库
import numpy as np
from sklearn.svm import SVR
from sklearn.metrics import r2_score
import matplotlib.pyplot as plt
# 读取训练数据
X_train = np.loadtxt("X_train.csv", delimiter=",")
y_train = np.loadtxt("y_train.csv", delimiter=",")
# 读取测试数据
X_test = np.loadtxt("X_test.csv", delimiter=",")
y_test = np.loadtxt("y_test.csv", delimiter=",")
# 定义多元支持向量机多元回归模型
svr_poly = SVR(kernel='poly', degree=3, C=1.0, epsilon=0.1)
# 训练模型
svr_poly.fit(X_train, y_train)
# 预测
y_pred = svr_poly.predict(X_test)
# 计算R2值
r2 = r2_score(y_test, y_pred)
# 绘制真实值与预测值对比图
plt.scatter(y_test, y_pred)
plt.xlabel('Real Value')
plt.ylabel('Predicted Value')
plt.title('Real Value vs Predicted Value')
plt.show()
# 输出R2值
print("R2:", r2)
第2个回答 2023-01-30
使用Python的Scikit-learn库可以实现多元支持向量机多元回归模型。
from sklearn import datasets
from sklearn.svm import SVR
from sklearn.metrics import r2_score
import matplotlib.pyplot as plt
# 加载数据集
boston = datasets.load_boston()
X = boston.data
y = boston.target
# 分割数据集为训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 使用SVR进行训练
svr = SVR(kernel='linear', C=1.0, epsilon=0.2)
svr.fit(X_train, y_train)
# 预测测试集
y_pred = svr.predict(X_test)
# 计算R2分数
r2 = r2_score(y_test, y_pred)
print("R2 score: ", r2)
# 绘制预测值与真实值对比图
plt.scatter(y_test, y_pred)
plt.xlabel("True values")
plt.ylabel("Predictions")
plt.show()
在这里,我们使用了Boston房价数据集,将其分割为训练集和测试集,然后使用SVR进行训练,并对测试集进行预测。最后,我们计算了R2分数并绘制了预测值与真实值的对比图。
如果你想导出预测结果,可以用pandas将结果保存到csv文件中:
import pandas as pd
# 将预测值保存到DataFrame中
df = pd.DataFrame({'y_test':y_test, 'y_pred':y_pred})
# 将数据导出到csv文件中