下载或者导入波士顿房价预测数据集,利用SVM实现房价预测回归模型,要求对采用不同的核函数效果进行对比。

目录

代码:

运行结果:


代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error
from sklearn.datasets import load_boston

# 导入波士顿房价数据集
boston = load_boston()
X = boston.data
y = boston.target

# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 特征标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# 不同核函数的SVR模型
kernels = ['linear', 'rbf']  # 尝试线性核和径向基核

for kernel in kernels:
    # 创建SVR模型
    svr = SVR(kernel=kernel)
    
    # 拟合模型
    svr.fit(X_train_scaled, y_train)
    
    # 在训练集和测试集上进行预测
    y_train_pred = svr.predict(X_train_scaled)
    y_test_pred = svr.predict(X_test_scaled)
    
    # 评估模型性能
    mse_train = mean_squared_error(y_train, y_train_pred)
    mse_test = mean_squared_error(y_test, y_test_pred)
    
    # 打印结果
    print(f"Kernel: {kernel}")
    print(f"Mean Squared Error on Training Set: {mse_train:.2f}")
    print(f"Mean Squared Error on Test Set: {mse_test:.2f}")
    
    # 绘制决策边界
    plt.figure(figsize=(10, 6))
    plt.scatter(y_test, y_test_pred, color='blue')
    plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], linestyle='--', color='red', linewidth=2)
    plt.title(f'{kernel} Kernel - Support Vector Regression')
    plt.xlabel('True Values')
    plt.ylabel('Predictions')
    plt.show()

运行结果:

Kernel: linear
Mean Squared Error on Training Set: 24.64
Mean Squared Error on Test Set: 28.92
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值