美文网首页
各种算法记录

各种算法记录

作者: 小喵周周 | 来源:发表于2018-01-06 01:48 被阅读0次

    摘录地址:http://www.csuldw.com/2015/07/22/2015-07-22%20%20ensemble/

    介绍了bagging bootsrap randomforest

    >>> from sklearn.ensemble import BaggingClassifier
    >>> from sklearn.neighbors import KNeighborsClassifier
    >>> bagging = BaggingClassifier(KNeighborsClassifier(),
                                 max_samples=0.5, max_features=0.5)
    

    模型生成
    令n为训练数据的实例数量
    对于t次循环中的每一次
    从训练数据中采样n个实例
    将学习应用于所采样本
    保存结果模型
    分类
    对于t个模型的每一个
    使用模型对实例进行预测
    返回被预测次数最多的一个
    ---------------------------------分割线-----------------------------------------------------------
    bagging与boosting的区别:

    二者的主要区别是取样方式不同。bagging采用均匀取样,而Boosting根据错误率来取样,因此boosting的分类精度要优于Bagging。bagging的训练集的选择是随机的,各轮训练集之间相互独立,而boostlng的各轮训练集的选择与前面各轮的学习结果有关;bagging的各个预测函数没有权重,而boosting是有权重的;bagging的各个预测函数可以并行生成,而boosting的各个预测函数只能顺序生成。对于象神经网络这样极为耗时的学习方法。bagging可通过并行训练节省大量时间开销。

    bagging和boosting都可以有效地提高分类的准确性。在大多数数据集中,boosting的准确性比bagging高。在有些数据集中,boosting会引起退化—- Overfit。
    ------------------------------------------分割线----------------------------------------------------

    from sklearn.cross_validation import cross_val_score
    >>> from sklearn.datasets import load_iris
    >>> from sklearn.ensemble import AdaBoostClassifier
    >>> iris = load_iris()
    >>> clf = AdaBoostClassifier(n_estimators=100)
    >>> scores = cross_val_score(clf, iris.data, iris.target)
    >>> scores.mean()                             
    0.9...
    

    随机森林代码如下:

    from sklearn.ensemble import RandomForestClassifier
    >>> X = [[0, 0], [1, 1]]
    >>> Y = [0, 1]
    >>> clf = RandomForestClassifier(n_estimators=10)
    >>> clf = clf.fit(X, Y)
    

    相关文章

      网友评论

          本文标题:各种算法记录

          本文链接:https://www.haomeiwen.com/subject/bqmenxtx.html