Kaggle(2):验证和过分拟合
来源:互联网 发布:北京鹰目网络 编辑:程序博客网 时间:2024/04/30 04:10
目前看来,随机森林是比较常用且有效的分类算法。以下先简要介绍python中随机森林的使用方法,然后谈谈分类结果的准确度验证和过拟合等两个重要问题。
1、随机森林的参数
在Scikit learn中使用RandomForestClassifier()进行随机森林分类,其中参数random_state为生成随机数的种子,n_estimators为随机森林的数目,min_samples_split为进一步分裂所要求的最小样本数量,min_samples_leaf为叶子节点的最小样本数量。
在处理的对象为小样本时,随机森林的数目n_estimators不宜过大;适当增加min_samples_split和min_samples_leaf都能够一定程度上避免模型的过拟合问题。
alg = sklearn.ensemble.RandomForestClassifier (random_state=1,n_estimators=150,min_samples_split=4, min_samples_leaf=2)
2、人工验证
可以使用train_test_split函数人工提取train/test数据,对所建立的模型进行验证。其中test_size表示测试样本所占比例。
sklearn.cross_validation.train_test_split(*arrays,**options)X_train, X_test, y_train, y_test = cross_validation.train_test_split(iris.data,iris.target, test_size=0.4, random_state=0)>>> X_train.shape, y_train.shape((90, 4), (90,))>>> X_test.shape, y_test.shape((60, 4), (60,))
3、交叉验证
利用scikit learn的交叉验证方法,可以仅使用训练数据集测试模型的准确性。其中最常见的是K折交叉验证:即将训练样本集分割成K个子样本,其中一个子样本被保留作为验证模型的测试数据,其他K-1个样本用来训练;交叉验证的过程重复K次,每个子样本验证一次,平均K次的结果,最终得到一个单一的准确度估测。
具体方法如下,其中cv表示K-折验证中的K值,例如cv=2表示二折交叉验证;n_jobs表示CPU数量。
sklearn.cross_validation.cross_val_score(estimator, X,y=None, scoring=None, cv=None, n_jobs=1, verbose=0, fit_params=None, pre_dispatch=‘2*n_jobs’)
4、关注过分拟合
过分拟合(overfitting)的直接结果是:对于训练集样本数据的交叉验证精度很高,但是用在实际测试集数据上,预测精度要低许多。
有时候为了使模型对实际(或测试)样本具有更高的预测精度,要适当降低模型在训练样本集上的预测准确度,避免由于过拟合所造成的适应性降低问题。
0 0
- Kaggle(2):验证和过分拟合
- 模型的过分拟合
- 不要过分依赖JS代码的验证
- 过分割和beam search
- 如何理解过拟合、正则化和交叉验证
- 欠拟合和过拟合
- 过拟合和欠拟合
- 过拟合和欠拟合
- Kaggle实例-Titanic分析(二)-补全 拟合
- kaggle 收不到手机验证码
- C++最小二乘法拟合-(线性拟合和多项式拟合)
- C++最小二乘法拟合-(线性拟合和多项式拟合)
- C++最小二乘法拟合-(线性拟合和多项式拟合)
- C++最小二乘法拟合-(线性拟合和多项式拟合)
- 过拟合和欠拟合理解
- 090003 过拟合和欠拟合
- 误差、欠拟合和过拟合
- Kaggle
- 周记
- 使用getID3向.mp3文件写入ID3v2 TXXX标签
- sql 中 join的使用
- 80端口被pid=4的进程占用
- LeetCode : Search Insert Position [java]
- Kaggle(2):验证和过分拟合
- 关于aop环绕通知的几点理解
- 关于无法解析布局文件和id的问题
- Java集合小结(1)
- SoundPool与mediaPlayer的使用
- Codeforces Round #344 (Div. 2) A. Interview【水题】
- LeetCode 2.Add Two Numbers
- HDU 1040 As Easy As A+B
- c++上机实验报告项目1-3