建模与调参

建模与调参

参考链接
详细的代码部分可以去看链接,部分内容来自 小雨姑娘 大佬的直播

使用交叉验证选择模型

在实际操作中特征和模型是需要不断尝试改进完善的;小雨大佬的经验是使用贪心策略先选择一个简单的模型,在这个模型上进行特征工程,将特征部分做到目前想不到办法能做任何改进的时候,再用交叉验证或者根据实际情况设计验证方法选择合适的模型。
模型验证方法
在使用训练集对参数进行训练的时候,经常会发现人们通常会将一整个训练集分为三个部分(比如mnist手写训练集)。一般分为:训练集(train_set),评估集(valid_set),测试集(test_set)这三个部分。这其实是为了保证训练效果而特意设置的。其中测试集很好理解,其实就是完全不参与训练的数据,仅仅用来观测测试效果的数据。而训练集和评估集则牵涉到下面的知识了。
因为在实际的训练中,训练的结果对于训练集的拟合程度通常还是挺好的(初始条件敏感),但是对于训练集之外的数据的拟合程度通常就不那么令人满意了。因此我们通常并不会把所有的数据集都拿来训练,而是分出一部分来(这一部分不参加训练)对训练集生成的参数进行测试,相对客观的判断这些参数对训练集之外的数据的符合程度。这种思想就称为交叉验证(Cross Validation)
根据模型在验证集上的表现,选择模型。因为不同的模型可能需要设置不同的参数,在选择模型时不用太过纠结,设置大致的参数就好。

模型调参

模型调参部分大致分为三种策略:贪心调参,网格搜索和随机搜索,以及贝叶斯调参。
其中网格搜索花费的时间较长,比较推荐尝试的时贝叶斯调参。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随机森林是一种成学习方法,它由多个决策树组成。每个决策树都是独立训练的,最后通过投票或平均的方式来进行预测。随机森林具有很好的泛化能力和抗过拟合能力,适用于分类和回归问题。 下面是一个使用Python中的scikit-learn库进行随机森林建模调参的示例代码: ```python # 导入所需的库 from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import GridSearchCV from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split # 创建一个随机森林分类器 rf = RandomForestClassifier() # 创建一个参数网格 param_grid = { 'n_estimators': [100, 200, 300], # 决策树的数量 'max_depth': [None, 5, 10], # 决策树的最大深度 'min_samples_split': [2, 5, 10], # 节点分裂所需的最小样本数 'min_samples_leaf': [1, 2, 4] # 叶子节点所需的最小样本数 } # 创建一个网格搜索对象 grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5) # 创建一些示例数据 X, y = make_classification(n_samples=1000, n_features=20, random_state=42) # 将数据拆分为训练和测试 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 在训练上进行网格搜索 grid_search.fit(X_train, y_train) # 输出最佳参数组合 print("Best parameters found: ", grid_search.best_params_) # 使用最佳参数组合的模型进行预测 y_pred = grid_search.predict(X_test) ``` 在上述代码中,我们首先导入了所需的库,然后创建了一个随机森林分类器对象。接下来,我们定义了一个参数网格,其中包含了我们希望调整的参数及其可能的取值。然后,我们创建了一个网格搜索对象,将随机森林分类器和参数网格作为参数传入。接着,我们使用`make_classification`函数创建了一些示例数据,并将数据拆分为训练和测试。最后,我们使用训练上的数据进行网格搜索,并输出找到的最佳参数组合。最后,我们使用最佳参数组合的模型进行预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值