XGBoost、SVM和随机森林方法训练模型

使用XGBoost、SVM和随机森林方法训练模型,并保存各个模型的示例代码:


import pandas as pd
import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.svm import SVR
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import StandardScaler
import joblib

# 加载数据
file_path = 'D:\\pythontest\\pythontest.xlsx'
data = pd.read_excel(file_path, engine='openpyxl')

# 预处理数据
X = data.iloc[:, 2:]  # 高光谱值作为特征
y = data.iloc[:, 1]  # Li含量作为标签

# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练并保存XGBoost模型
xgb_model = xgb.XGBRegressor()
xgb_model.fit(X_train, y_train)
joblib.dump(xgb_model, 'xgb_model.pkl')

# 验证XGBoost模型
y_pred_xgb = xgb_model.predict(X_test)
r2_xgb = r2_score(y_test, y_pred_xgb)
rmse_xgb = mean_sq
随机森林支持向量机SVMXGBoost都是常用的分类模型,它们在不同的场景下有各自的优势适用性。 随机森林是一种集成学习方法,它由多个决策树组成。每个决策树都是基于随机选择的特征子集进行训练,最后通过投票或平均的方式来进行分类。随机森林具有以下特点: 1. 随机性:通过随机选择特征子集样本子集进行训练,减少了过拟合的风险。 2. 高效性:可以并行处理,适用于大规模数据集。 3. 鲁棒性:对于缺失值异常值具有较好的鲁棒性。 支持向量机SVM)是一种二分类模型,其目标是找到一个最优的超平面来将不同类别的样本分开。SVM具有以下特点: 1. 非线性分类:通过使用核函数,SVM可以处理非线性可分的数据。 2. 泛化能力强:SVM通过最大化间隔来选择最优超平面,具有较好的泛化能力。 3. 对于高维数据有效:SVM在高维空间中表现良好,适用于特征维度较高的数据。 XGBoost是一种梯度提升树模型,它通过迭代地训练多个决策树来进行分类。XGBoost具有以下特点: 1. 高准确性:XGBoost通过优化损失函数,能够得到较高的预测准确性。 2. 高效性:XGBoost使用了一些优化技巧,如特征并行近似算法,提高了训练预测的效率。 3. 对于不平衡数据集有效:XGBoost通过设置样本权重调整阈值等方式,能够处理不平衡数据集。 综上所述,随机森林适用于大规模数据集高维数据,SVM适用于非线性分类高维数据,XGBoost适用于高准确性不平衡数据集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值