admin 管理员组文章数量: 887044
Bagging...
# _*_coding:utf-8_*_ """一个原始数据的bagging分类,编辑代码思想的步骤:1. 根据要实现的需求,导入数据处理和功能调用的包/模块2. 创建数据3. 创建变量n_tree:集成分类器棵数4. 创建存储分类器的存储器5. 循环1-n_tree的训练和预测:训练 01:训练循环体中选用抽取方式并调用训练 02:将x,y从数据表格中取出训练 03:实例化分类器训练 04:训练训练 05:每循环一次分类器存储到存储器预测 01:重新创建X,Y变量取出数据预测 02:初始化分类器计算的总值total预测 03:预测循环体中存储器每一次的predict()预测 04:total叠加预测 05:预测y6. 打分
""" import numpy as np import pandas as pd from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import f1_score, accuracy_scoredf = pd.DataFrame([[0,1],[1,1],[2,1],[3,-1],[4,-1],[5,-1],[6,1],[7,1],[8,1],[9,-1]]) #print(df) N_TREE = 100 # 用来存储弱学习器 models = [] # df2 = df.sample(frac=1.0, replace=False)# 集成100棵决策树的弱学习器 for i in range(N_TREE):"""sample(), 抽样n=None, 抽样的数据量frac=None, 抽样占比replace=False/True, 无放回/有放回 抽样weights=None, 权重random_state=None, 随机数种子axis=None, 维度"""df2 = df.sample(frac=1.0, replace=True)X = df2.iloc[:, :1]Y = df2.iloc[:, -1]model = DecisionTreeClassifier(max_depth=1)model.fit(X, Y) # 训练models.append(model) # print(models)# 预测100棵可集成分类器结果 print('#' * 100) x = df.iloc[:, :-1] y = df.iloc[:, -1]# print(df.shape[0]) # df.shape: (10, 2); df.shape[0]: 10 total = np.zeros(df.shape[0]) print("尚未循环训练的total", total)for i in range(N_TREE):# print(models[i].predict(x))total += np.array(models[i].predict(x))print(total)y_hat = np.sign(total) print(y_hat) print(accuracy_score(y, y_hat)) print(f1_score(y, y_hat))print('-' * 100) print('整理一次有放回抽样的训练和预测') model01 = DecisionTreeClassifier(max_depth=1) model01.fit(x, y) y_hat01 = model01.predict(x) print(y_hat01) print(accuracy_score(y, y_hat01)) print(f1_score(y, y_hat01))
####################################################################################################
尚未循环训练的total [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 58. 58. 52. -8. -38. -36. -4. 4. 4. -40.]
[ 1. 1. 1. -1. -1. -1. -1. 1. 1. -1.]
0.9
0.9090909090909091
----------------------------------------------------------------------------------------------------
整理一次有放回抽样的训练和预测
[ 1 1 1 -1 -1 -1 -1 -1 -1 -1]
0.7
0.6666666666666666
Process finished with exit code 0
本文标签: bagging
版权声明:本文标题:Bagging... 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687686511h129144.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论