返回顶部
首页 > 资讯 > 后端开发 > Python >python机器学习Sklearn中adaboost算法的示例分析
  • 735
分享到

python机器学习Sklearn中adaboost算法的示例分析

2023-06-21 21:06:24 735人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要为大家展示了“python机器学习Sklearn中adaboost算法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python机器学习Sklearn中adaboost算法

这篇文章主要为大家展示了“python机器学习Sklearn中adaboost算法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python机器学习Sklearn中adaboost算法的示例分析”这篇文章吧。

pandas批量处理体测成绩

import numpy as npimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as pltdata = pd.read_excel("/Users/zhucan/Desktop/18级高一体测成绩汇总.xls")
cond = data["班级"] != "班级"data = data[cond] data.fillna(0,inplace=True)data.isnull().any()   #没有空数据了

结果:

班级       False

性别       False

姓名       False

1000米    False

50米      False

跳远       False

体前屈      False

引体       False

肺活量      False

身高       False

体重       False

dtype: bool


data.head()

python机器学习Sklearn中adaboost算法的示例分析

#1000米成绩有string 有intdef convert(x):    if isinstance(x,str):        minute,second = x.split("'")        int(minute)        minute = int(minute)        second = int(second)        return minute + second/100.0    else:        return xdata["1000米"] = data["1000米"].map(convert)

python机器学习Sklearn中adaboost算法的示例分析

score = pd.read_excel("/Users/zhucan/Desktop/体侧成绩评分表.xls",header=[0,1])score

python机器学习Sklearn中adaboost算法的示例分析

def convert(item):    m,s = item.strip('"').split("'")    m,s =int(m),int(s)    return m+s/100.0score.iloc[:,-4] = score.iloc[:,-4].map(convert) def convert(item):    m,s = item.strip('"').split("'")    m,s =int(m),int(s)    return m+s/100.0    score.iloc[:,-2] = score.iloc[:,-2].map(convert)score

python机器学习Sklearn中adaboost算法的示例分析

data.columns = ['班级', '性别', '姓名', '男1000', '男50米跑', '跳远', '体前屈', '引体', '肺活量', '身高', '体重']
data["男50米跑"] = data["男50米跑"].astype(np.float)for col in ["男1000","男50米跑"]:    #获取成绩的标准    s = score[col]    def convert(x):        for i in range(len(s)):            if x<=s["成绩"].iloc[0]:                if x == 0:                    return 0 #没有参加这个项目                return 100            elif x>s["成绩"].iloc[-1]:                return 0  #跑的太慢            elif (x>s["成绩"].iloc[i-1]) and (x<=s["成绩"].iloc[i]):                return s["分数"].iloc[i]    data[col + "成绩"] = data[col].map(convert)

python机器学习Sklearn中adaboost算法的示例分析

for col in ['跳远', '体前屈', '引体', '肺活量']:    s = score["男"+col]    def convert(x):        for i in range(len(s)):            if x>s["成绩"].iloc[i]:                return s["分数"].iloc[i]        return 0    data[col+"成绩"] = data[col].map(convert)

python机器学习Sklearn中adaboost算法的示例分析

data.columns

 结果:

Index(['班级', '性别', '姓名', '男1000', '男50米跑', '跳远', '体前屈', '引体', '肺活量', '身高',       '体重', '男1000成绩', '男50米跑成绩', '跳远成绩', '体前屈成绩', '引体成绩', '肺活量成绩'],      dtype='object')
#根据索引的顺序,去data取值cols = ['班级', '性别', '姓名', '男1000','男1000成绩','男50米跑','男50米跑成绩','跳远','跳远成绩','体前屈','体前屈成绩','引体','引体成绩', '肺活量','肺活量成绩','身高','体重']data[cols]

python机器学习Sklearn中adaboost算法的示例分析

#计算BMIdata["BMI"] = data["体重"]/data["身高"]def convert(x):    if x>100:        return x/100    else:        return xdata["身高"] = data["身高"].map(convert)data["BMI"] = data["体重"]/(data["身高"])**2
def convert_bmi(x):    if x >= 26.4:        return 60    elif (x <= 16.4) or (x > 23.3 and x <= 26.3):        return 80    elif x >= 16.5 and x <= 23.2:        return 100    else:        return 0data["BMI_score"] = data["BMI"].map(convert_bmi)
#统计分析data["BMI_score"].value_counts().plot(kind = "pie",autopct = "%0.2f%%")#统计分析data["BMI_score"].value_counts().plot(kind = "bar")

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

data.groupby(["男1000成绩"])["BMI_score"].count().plot(kind = "bar")

python机器学习Sklearn中adaboost算法的示例分析

adaboost

python机器学习Sklearn中adaboost算法的示例分析 

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析 值

越大,特征越明显,越被容易分开;越后面的学习器,权重越大

梯度提升树没有修改原来的数据,使用的是残差,最终结果就是最后一棵树

上面的图不是GBDT

python机器学习Sklearn中adaboost算法的示例分析

Boosting与Bagging模型相比,Boosting可以同时降低偏差和方差,Bagging只能降低模型的方差。在实际应用中,Boosting算法也还是存在明显的高方差问题,也就是过拟合。 

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

import numpy as npy = np.array([0,1]*5)y_ = np.array([0,0,0,0,0,0,0,1,0,1])w = 0.1*(y != y_).sum()round(w,1)

结果:

0.3


0.5*np.log((1-0.3)/0.3)round((0.5*np.log((1-0.3)/0.3)),2)

 结果:

0.42

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

adaboost原理案例举例

from sklearn.ensemble import AdaBoostClassifierfrom sklearn import treeimport matplotlib.pyplot as pltX = np.arange(10).reshape(-1,1)y = np.array([1,1,1,-1,-1,-1,1,1,1,-1])ada = AdaBoostClassifier(n_estimators=3)ada.fit(X,y)
plt.figure(figsize = (9,6))_ = tree.plot_tree(ada[0])

python机器学习Sklearn中adaboost算法的示例分析

y_ = ada[0].predict(X),4y_

结果:

array([ 1,  1,  1, -1, -1, -1, -1, -1, -1, -1])
#误差率e1 = np.round(0.1*(y != y_).sum(),4)e1

结果:

0.3


#计算第一棵树权重#随机森林中每棵树的权重是一样的#adaboost提升树中每棵树的权重不同a1 = np.round(1/2*np.log((1-e1)/e1),4)a1

结果:

0.4236


#样本预测准确:更新的权重w2 = 0.1*np.e**(-a1*y*y_)w2 = w2/w2.sum()np.round(w2,4)

结果:

array([0.0714, 0.0714, 0.0714, 0.0714, 0.0714, 0.0714, 0.1667, 0.1667,       0.1667, 0.0714])
#样本预测准确:更新的权重w2 = 0.1*np.e**(-a1*y*y_)w2 = w2/w2.sum()np.round(w2,4)

结果:

array([0.0714, 0.0714, 0.0714, 0.0714, 0.0714, 0.0714, 0.1667, 0.1667,       0.1667, 0.0714])

从上述第一轮的整个迭代过程可以看出:被误分类样本的权值之和影响误差率,误差率影响基本分类器在最终分类器中所占的权重

分类函数 f1(x)= a1*G1(x)= 0.4236G1(x)

python机器学习Sklearn中adaboost算法的示例分析

plt.figure(figsize = (9,6))_ = tree.plot_tree(ada[1])

python机器学习Sklearn中adaboost算法的示例分析

e2 = 0.0714*3e2

结果:

0.2142

a2 = np.round(1/2*np.log((1-e2)/e2),4)a2

 结果:

0.6499


y_ = ada[1].predict(X)#样本预测准确:更新的权重w3 = w2*np.e**(-a2*y*y_)w3 = w3/w3.sum()np.round(w3,4)

结果:

array([0.0454, 0.0454, 0.0454, 0.1667, 0.1667, 0.1667, 0.106 , 0.106 ,       0.106 , 0.0454])
plt.figure(figsize = (9,6))_ = tree.plot_tree(ada[2])

python机器学习Sklearn中adaboost算法的示例分析

python机器学习Sklearn中adaboost算法的示例分析

树划分按照gini系数;结果和按照误差率是一致的~ 

y_ = ada[2].predict(X)e3 = (w3*(y_ != y)).sum()a3 = 1/2*np.log((1-e3)/e3)a3#样本预测准确:更新的权重w4 = w3*np.e**(-a3*y*y_)w4 = w4/w4.sum()np.round(w4,4)

结果:

array([0.125 , 0.125 , 0.125 , 0.1019, 0.1019, 0.1019, 0.0648, 0.0648,       0.0648, 0.125 ])
display(a1,a2,a3)

 结果:

0.4236

0.6498960745553556

0.7521752700597043

弱分类器合并成强分类器

综上,将上面计算得到的a1、a2、a3各值代入G(x)中

G(x) = sign[f3(x)] = sign[ a1 * G1(x) + a2 * G2(x) + a3 * G3(x) ]

得到最终的分类器为:

G(x) = sign[f3(x)] = sign[ 0.4236G1(x) + 0.6496G2(x)+0.7514G3(x) ]

ada.predict(X)

结果:

array([ 1,  1,  1, -1, -1, -1,  1,  1,  1, -1])
y_predict = a1*ada[0].predict(X) +  a2*ada[1].predict(X) +a3*ada[2].predict(X)y_predictnp.sign(y_predict).astype(np.int)
array([ 1,  1,  1, -1, -1, -1,  1,  1,  1, -1])

以上是“python机器学习Sklearn中adaboost算法的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网Python频道!

--结束END--

本文标题: python机器学习Sklearn中adaboost算法的示例分析

本文链接: https://lsjlt.com/news/300717.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python机器学习Sklearn中adaboost算法的示例分析
    这篇文章主要为大家展示了“python机器学习Sklearn中adaboost算法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python机器学习Sklearn中adaboost算法...
    99+
    2023-06-21
  • python机器学习Sklearn实战adaboost算法示例详解
    目录pandas批量处理体测成绩adaboostadaboost原理案例举例弱分类器合并成强分类器pandas批量处理体测成绩 import numpy as np import...
    99+
    2024-04-02
  • Python机器学习之AdaBoost算法的示例分析
    这篇文章将为大家详细讲解有关Python机器学习之AdaBoost算法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、算法概述AdaBoost 是英文 Adaptive Boosting(自适...
    99+
    2023-06-15
  • Python机器学习之AdaBoost算法
    目录一、算法概述二、算法原理三、算法步骤四、算法实现五、算法优化一、算法概述 AdaBoost 是英文 Adaptive Boosting(自适应增强)的缩写,由 Yoav Freund 和Robert S...
    99+
    2022-06-02
    Python AdaBoost算法 Python机器学习
  • python机器学习中特征工程算法的示例分析
    这篇文章主要为大家展示了“python机器学习中特征工程算法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python机器学习中特征工程算法的示例分析”这篇文章吧。一、机器学习概述机器...
    99+
    2023-06-25
  • Python机器学习之PCA降维算法的示例分析
    小编给大家分享一下Python机器学习之PCA降维算法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、算法概述主成分分析 (Principal Com...
    99+
    2023-06-15
  • Python机器学习中pandas的示例分析
    小编给大家分享一下Python机器学习中pandas的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python的五大特点是什么python的五大特点:1...
    99+
    2023-06-15
  • python机器学习算法与数据降维的示例分析
    这篇文章主要介绍python机器学习算法与数据降维的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、数据降维机器学习中的维度就是特征的数量,降维即减少特征数量。降维方式有:特征选择、主成分分析。1.特征选择...
    99+
    2023-06-25
  • Python深度学习算法实例分析
    本篇内容主要讲解“Python深度学习算法实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python深度学习算法实例分析”吧!最小二乘法所有的深度学习算法都始于下面这个数学公式(我已将其...
    99+
    2023-06-03
  • python机器学习之神经网络的示例分析
    这篇文章主要介绍了python机器学习之神经网络的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python可以做什么Python是一种编程语言,内置了许多有效的工具...
    99+
    2023-06-14
  • Python机器学习之逻辑回归的示例分析
    这篇文章主要介绍了Python机器学习之逻辑回归的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python主要用来做什么Python主要应用于:1、Web开发;2、...
    99+
    2023-06-15
  • Python中算法的示例分析
    小编给大家分享一下Python中算法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 算法的设计要求算法分析的主要目标是从运行时间和内存空间消耗等方面...
    99+
    2023-06-22
  • python中PTD算法的示例分析
    小编给大家分享一下python中PTD算法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.引言1.1什么是地面点滤波?机载激光雷达(airborne ...
    99+
    2023-06-20
  • python机器学习中朴素贝叶斯算法及模型选择和调优的示例分析
    这篇文章将为大家详细讲解有关python机器学习中朴素贝叶斯算法及模型选择和调优的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、概率知识基础1.概率概率就是某件事情发生的可能性。2.联合概率包...
    99+
    2023-06-25
  • Python实现机器学习算法的分类
    Python算法的分类 对葡萄酒数据集进行测试,由于数据集是多分类且数据的样本分布不平衡,所以直接对数据测试,效果不理想。所以使用SMOTE过采样对数据进行处理,对数据去重,去空,处...
    99+
    2024-04-02
  • python爬虫中学习方向的示例分析
    小编给大家分享一下python爬虫中学习方向的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python主要应用领域有哪些1、云计算,典型应用OpenSt...
    99+
    2023-06-14
  • Python-OpenCV深度学习的示例分析
    这篇文章将为大家详细讲解有关Python-OpenCV深度学习的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 计算机视觉中的深度学习简介深度学习推动了计算机视觉领域的深刻变革,我们首先解释深...
    99+
    2023-06-22
  • Python中K-means算法的示例分析
    这篇文章主要介绍了Python中K-means算法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、步骤说明(1)确定K值(决定数据聚为几类,K值是K-Means算...
    99+
    2023-06-15
  • opencv3机器学习之EM算法示例详解
    目录引言一、opencv3.0中自带的例子二、trainEM实现自动聚类进行图片目标检测引言 不同于其它的机器学习模型,EM算法是一种非监督的学习算法,它的输入数据事先不需要进行标注...
    99+
    2024-04-02
  • python算法题的示例分析
    这篇文章将为大家详细讲解有关python算法题的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。题目描述:编写一个算法来确定一个数字是否“快乐”。 快乐的数字按照如下方式确定:从一个正整数开始,用其...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作