当前位置: 首页 > news >正文

机器学习之正态分布拟合

文章目录

  • 核心思想
    • 什么是正态分布?
    • 正态分布的参数
    • 标准正态分布:正态分布的特例
  • 代码
  • 也可以试试哦

核心思想

什么是正态分布?

正态分布也被称为高斯分布或者钟形曲线(因为它看起来像一个钟),这是统计学中最重要的概率分布,就像我们在大自然中经常看到的那样,它有点神奇。例如,身高、体重、血压、测量误差、智商得分等都服从正态分布。

正态分布的参数

正态分布总是以平均值为中心,而曲线的宽度则由标准差(SD)决定。、这是两个正态分布,x轴上的高度单位是英寸,y轴上是特定高度对应的人数。

婴儿的平均身高为20英寸,标准差为0.6英寸 成年人的身高为70英寸,标准差为4英寸

了解正态分布标准差的意义在于,它遵循一个经验法则,即大约95%的测量值落在均值附近的+/-2倍个标准差之间。

推论:95%的人口落在平均值+/-2*SD之间

所有正态分布的共同特征

  1. 它们都是对称的
  2. 平均数 = 中位数
  3. 根据经验法则,我们可以确定正态分布曲线离均值标准差范围内的数据百分比。

标准正态分布:正态分布的特例

如前所述,正态分布根据参数值(平均值和标准差)有许多不同的形状。标准正态分布是正态分布的一个特例,均值为0,标准差为1。这个分布也称为Z分布。

标准正态分布上的值称为标准分数或Z分数。标准分数表示某一特定观测值高于或低于平均数的SD值。

代码

def circulating(df):

    cond = df.abs() - df.mean() > 3*df.std()
    cond.sum()  # 小于3σ标准的总和
    # 让小于3σ标准的那些作为条件 即布尔索引
    # 借助any()函数, 测试是否有True,有一个或以上返回True,反之返回False
    cond = cond.any(axis = 1)
    df2 = df.drop(labels=df[cond].index)
    return df2

也可以试试哦


data=pd.read_csv('Titanic.train.csv')
data=data.drop(['PassengerId','Name','Ticket','Cabin'],axis=1)
imputer=SimpleImputer(strategy='mean')
data['Age']=imputer.fit_transform(data[['Age']])
for col in data.columns:
    if data[col].dtype=='object':
        data[col]=data[col].astype('category')

x=data.drop(['Survived'],axis=1)
y=data['Survived']

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0)

params={'max_depth':[2,3,4],
        'learning_rate':[0.05,0.1,0.15,0.2,1],
        'n_estimators':[30,50,80,100]}

estimator=LGBMClassifier(objective='binary',reg_alpha=0.1,
                         reg_lambda=0.2)
gbm=GridSearchCV(estimator,params)
gbm.fit(x_train,y_train,early_stopping_rounds=10,
        categorical_feature=['Sex','Embarked'],
        eval_metric=['auc','binary'],
        eval_set=[(x_train,y_train)],
        eval_names='train',
        verbose=10)

model=gbm.best_estimator_
y_pred=model.predict(x_test)
roc_auc=roc_auc_score(y_test,model.predict_proba(x_test)[:,1])
accuracy=accuracy_score(y_test,y_pred)

相关文章:

  • USB4 V2.0即将发布,速度高达80Gbps
  • IOC控制反转
  • 02.4 微积分
  • STC15单片机-串口打印
  • 极客时间java高级(第二次课程)
  • 初识OpenGL (-)EBO元素缓冲对象
  • 公众号网课答案接口如何使用
  • 快速构建你的Web项目
  • 【Rust日报】2022-09-03 Arti 1.0.0 发布:我们的 Rust Tor 实现已准备好用于生产
  • docker 部署 tomcat
  • 配置OpenCV 4.x OpenCV-contrib c++ vs2017/19极简 极详细,不用自己编译
  • Antv G6 拖拽生成节点
  • 2022-9-3 22点 程序爱生活 纳指这波下跌需要缓口气,但是后面更加猛烈,恒指可能有反弹, 但会继续被裹挟下跌,创出新低
  • 操作系统(王道)
  • 详解:生产线平衡改善的四大方法与八大步骤!
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 2019年如何成为全栈工程师?
  • Akka系列(七):Actor持久化之Akka persistence
  • AWS实战 - 利用IAM对S3做访问控制
  • css选择器
  • github指令
  • HashMap ConcurrentHashMap
  • Map集合、散列表、红黑树介绍
  • nfs客户端进程变D,延伸linux的lock
  • Shell编程
  • Vue.js源码(2):初探List Rendering
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从PHP迁移至Golang - 基础篇
  • 构建工具 - 收藏集 - 掘金
  • 关于Flux,Vuex,Redux的思考
  • 基于遗传算法的优化问题求解
  • 简单数学运算程序(不定期更新)
  • 精彩代码 vue.js
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端设计模式
  • 如何学习JavaEE,项目又该如何做?
  • 算法-插入排序
  • 一个完整Java Web项目背后的密码
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​Java并发新构件之Exchanger
  • # .NET Framework中使用命名管道进行进程间通信
  • # Panda3d 碰撞检测系统介绍
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (笔试题)分解质因式
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (区间dp) (经典例题) 石子合并
  • (顺序)容器的好伴侣 --- 容器适配器
  • (未解决)macOS matplotlib 中文是方框
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models