如何编写并实现一个使用支持向量机(SVM)回归模型来进行钻石数据集特征分析和价格预测的具体Python代码示例?
时间: 2024-12-25 10:37:14 浏览: 18
在Python中,我们可以使用Scikit-learn库来实现支持向量机(SVM)回归模型对钻石数据集进行特征分析和价格预测。以下是一个简单的示例,我们将使用钻石数据集(通常来自R语言的diamonds.csv文件),假设已经安装了pandas、numpy和scikit-learn:
```python
# 导入所需库
import pandas as pd
import numpy as np
from sklearn import datasets
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, r2_score
# 加载数据集
diamonds = pd.read_csv('diamonds.csv') # 请确保你的文件路径正确
# 准备特征和目标变量
X = diamonds.drop(['price', '克拉'], axis=1) # 我们这里忽略克拉作为特征,只保留其他数值型特征
y = diamonds['价格']
# 数据预处理,标准化特征值
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# 创建并训练SVM回归模型
svm_reg = SVR(kernel='rbf') # 使用径向基函数(RBF)核
svm_reg.fit(X_train, y_train)
# 预测
y_pred = svm_reg.predict(X_test)
# 评估模型性能
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Squared Error (MSE): {mse}")
print(f"R^2 Score: {r2}")
阅读全文