1. 网格搜索
交叉验证只能导入没训练过的模型,
方差:稳定性
偏差:准确性
类StratifiedShuffleSplit
其创建的每一组划分将保证每组类比比例相同。即第一组训练数据类别比例为2:1,则后面每组类别都满足这个比例
2. xgboost库与XGB的sklearn API
2.1 使用xgboost库
import xgboost as xgb
2.2 使用sklearn中的API
from xgboost import XGBRegressor as XGBR
使用xgboost中设定的建模流程来建模,和使用sklearnAPI中的类来建模,模型效果是比较相似的,但是xgboost库本身的运算速度(尤其是交叉验证)以及调参手段比sklearn要简单。
3. 目标函数
XGBoost的目标函数=传统损失函数+模型复杂度
其中代表数据集中的第个样本,表示导入第棵树的数据总量,代表建立的所有树,当只建立了棵树时,式子应当为。(1)中第一项代表传统的损失函数,衡量真实标签与预测标签之间的差异,通常是RMSE,调节后的均方误差。(1)中第二项代表模型的复杂度,使用树模型的某种变换表示,这个变化代表了一个从树的结构来衡量树模型的复杂度的式子。通过最小化求得最优的。
在编程中,使用参数’objective’来确定目标函数第一部分中的,也就是衡量损失的部分。
| Xib.train() | Xib.XGBRegressor() | Xib.XGBClassifier |
|---|---|---|
| Obj:默认binary:logistic | objective:默认reg:linear | objective:默认binary:logistic |
| 输入 | 选用的损失函数 |
|---|---|
| reg:linear | 使用线性回归的损失函数,均方误差,回归时使用 |
| binary:logistic | 使用逻辑回归的损失函数,对数损失log_loss,二分类时使用 |
| binary:hinge | 使用支持向量机的损失函数,Hinge Loss,二分类时使用 |
| multi:softmax | 使用softmax损失函数,多分类时使用 |