文件名称:交叉验证-人脸识别图像预处理技术
文件大小:4.91MB
文件格式:PDF
更新时间:2024-06-29 11:23:53
数据挖掘算法 Python
11.3 准确率和召回率 1.准确率(precision rate) 提取出的正确信息条数/提取出的信息条数 2.召回率 提取出的正确信息条数/样本中的信息条数 11.4 如何避免过拟合 过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大。其原因一般是模型过于复 杂,过分得去拟合数据的噪声和 outliers 常见的解决办法是:增大数据集,正则化 11.5 交叉验证 1.K-Folds 交叉验证 K 层交叉检验就是把原始的数据随机分成 K 个部分。在这 K 个部分中,选择一个作为测试数 据,剩下的 K-1 个作为训练数据。 交叉检验的过程实际上是把实验重复做 K 次,每次实验都从 K 个部分中选择一个不同的部分作 为测试数据(保证 K 个部分的数据都分别做过测试数据),剩下的 K-1 个当作训练数据进行实验, 最后把得到的 K 个实验结果平均。 Python 实现: from sklearn import cross_validation model = RandomForestClassifier(n_estimators=100) #Simple K-Fold cross validation. 10 folds. cv = cross_validation.KFold(len(train), n_folds=10, indices=False) results = [] # "Error_function" can be replaced by the error function of your analysis for traincv, testcv in cv: probas = model.fit(train[traincv], target[traincv]).predict_proba(train[testcv]) results.append( Error_function ) print "Results: " + str( np.array(results).mean() )