首页 > 其他 > 详细

tensorflow机器学习初接触

时间:2021-01-12 23:22:47      阅读:28      评论:0      收藏:0      [点我收藏+]

1. Bagging

Bootstrap:一种有放回的抽样方法。

Bagging( bootstrap aggregation)的策略:从样本集中进行有放回地选出n个样本;在样本的所有特征上,对这n个样本建立分类器;重复上述两步m次,获得m个样本分类器;最后将测试数据都放在这m个样本分类器上,最终得到m个分类结果,再从这m个分类结果中决定数据属于哪一类(多数投票制)。

随机森林采用了Bagging策略,且在其基础上进行了一些修改,采用了两个随机:

  1. 从训练样本集中使用Bootstrap采样(随机有放回)选出n个样本。

  2. 设样本共有b个特征,从这b个特征中只随机选择k个特征来分割样本,通过计算选择最优划分特征作为节点来划分样本集合来建立决策树。(与Bagging的不同之处:没有使用全部的特征,这样可以避免一些过拟合的特征,不再对决策树进行任何剪枝)

  3. 重复以上两步m次,可建立m棵决策树 

  4. 这m棵决策树形成了森林,可通过简单多数投票法(或其他投票机制)来决定森林的输出,决定属于哪一类型。(针对解决回归问题,可以采用单棵树输出结果总和的平均值)

随机森林在一定程序上提高了泛化能力,而且可以并行地生成单棵树。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeRegressor


if __name__ == "__main__":
    n = 500
    x = np.random.rand(n) * 8 - 3
    x.sort()
    y = np.cos(x) + np.sin(x) + np.random.randn(n) * 0.4
    x = x.reshape(-1, 1)

    reg = DecisionTreeRegressor(criterion=mse)
    # reg1 = RandomForestRegressor(criterion=mse)
    dt = reg.fit(x, y)
    # dt1 = reg1.fit(x, y)
    x_test = np.linspace(-3, 5, 100).reshape(-1, 1)
    y_hat = dt.predict(x_test)
    plt.figure(facecolor="w")
    plt.plot(x, y, ro, label="actual")
    plt.plot(x_test, y_hat, k*, label="predict")
    plt.legend(loc="best")
    plt.title(uDecision Tree, fontsize=17)
    plt.tight_layout()
    plt.grid()
    plt.show()

 

tensorflow机器学习初接触

原文:https://www.cnblogs.com/520520520zl/p/14268862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!