机器学习中的集成投票、超参数调优与物联网数据降噪
1. 集成投票(Ensemble Voting)
1.1 投票分类器原理
投票分类器允许我们通过多数投票将不同类型的多个机器学习算法的预测结果进行组合,这与Bagging/Boosting不同,后者使用相似类型的多个分类器进行多数投票。具体步骤如下:
1. 从训练数据集中创建多个独立的模型。
2. 使用投票分类器包装这些模型,当需要对新数据进行预测时,对各个子模型的预测结果进行平均。子模型的预测结果可以进行加权,但手动或启发式地为分类器指定权重是很困难的。更高级的方法可以学习如何对来自子模型的预测结果进行最佳加权,这被称为堆叠(stacked aggregation),目前Scikit - learn中未提供该功能。
1.2 代码示例
以下是在Pima糖尿病数据集上构建单个模型并尝试投票分类器的代码:
import pandas as pd
import numpy as np
# set seed for reproducability
np.random.seed(2017)
import statsmodels.api as sm
from sklearn import metrics
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier
from sklear