码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 任务五 处理连续型数据


    目录

    函数sklearn.preprocessing.Binarizer

    函数preprocessing.KBinsDiscretizer

    encode="ordinal"

    encode="onehot"

    处理糖尿病数据集

    导入数据

    缺失值统计

    缺失值填补

    标签转换

    处理连续型数据


    函数sklearn.preprocessing.Binarizer

    根据阈值将数据二值化(将特征值设置为0或1),用于处理连续型变量。大于阈值的值映射为1,而小于或等于阈值的值映射为0。

    sklearn.preprocessing.Binarizer(threshold=0.0, copy=True)
    1. X = [[ -3., 5., 15 ],
    2. [ 0., 6., 14 ],
    3. [ 6., 3., 11 ]]
    print(type(X))

                 

    1. test=Binarizer(threshold=6).fit_transform(X)
    2. print(test)

     

    函数preprocessing.KBinsDiscretizer

    1. class sklearn.preprocessing.KBinsDiscretizer(n_bins=5,
    2. encode='onehot',
    3. strategy='quantile'
    4. )

    encode="ordinal"

     

    encode="onehot"

    1. X = np.array([[ -3., 5., 15 ],
    2. [ 0., 6., 14 ],
    3. [ 6., 3., 11 ]])
    4. X=X.reshape(-1,1)
    5. print(X)
    6. est = KBinsDiscretizer(n_bins=3,encode='onehot').fit(X)
    7. print(est.fit_transform(X))

    print(est.fit_transform(X).toarray())
    

    处理糖尿病数据集

    导入数据

    函数read_excel

    data = pd.read_excel('./input/diabetes_missing_value.xlsx')
    

    缺失值统计

    print(data.isnull().sum())
    

    缺失值填补

    主要是两种方式

    缺失值较少时直接用中值填补

    data["plas"] = data["plas"].fillna(data["plas"].median())

    缺失值较多时,用热力图查看与该特征关联度较大的几个特征,根据这几个特征求取中值,没有时求取直接使用整段中值

    1. #skin的缺失值比较多 通过热力图可以看出skin和mass、pres、plas三种数据相关性较大
    2. # Filling missing value of skin
    3. index_NaN_age = list(data["skin"][data["skin"].isnull()].index)
    4. #注意这里的空置表示方式:dataset['skin'][dataset.skin.isnull()].index,属性后面紧跟着一个[筛选条件].index,返回的是raw序号.
    5. for i in index_NaN_age :
    6. skin_med = data["skin"].median()#非空skin 值的中位数
    7. skin_pred = data["skin"][((data['mass'] == data.iloc[i]["mass"]) & (data['pres'] == data.iloc[i]["pres"]) & (data['plas'] == data.iloc[i]["plas"]))].median()#在所有的记录中,寻找与Age为空值记录,SibSp\Parch\Pclass都想同的记录,例如有5条,取这5条记录中Age的中位数填充空的Age值
    8. if not np.isnan(skin_pred) :
    9. data['skin'].iloc[i] = skin_pred
    10. else :
    11. data['skin'].iloc[i] = skin_med

    标签转换

    标签转换 将class里的b'tested_positive'转为1 negative转为0

    data.iloc[:,-1]=LabelEncoder().fit_transform(data.iloc[:,-1])

    处理连续型数据

    preg怀孕次数

    X=data.iloc[:,0].values.reshape(-1,1)
    

    使用 KBinsDiscretizer 

    test=KBinsDiscretizer(n_bins=3,encode='onehot',strategy='uniform').fit_transform(X).toarray()

    1. newdata=pd.concat([pd.DataFrame(test),data],axis=1)
    2. print(newdata.head())

    1. newdata.drop(["preg"],axis=1,inplace=True)
    2. newdata.columns=["preg_small","preg_middle","preg_large","plas","pres","skin","insu","mass","pedi","age","class"]
    3. print(newdata.head())

     

  • 相关阅读:
    基于Javaweb的流动市场地摊管理系统
    Java-SpringBoot-使用多态给项目解耦
    idea软件_启动出错&永久办法&leetcode关联
    多姿多彩的编程世界之配色方案
    git-新增业务代码分支
    强强联手!三思&华为数字站点数智化隧道联合方案,加速交通智能化
    C语言实现《猜数字游戏》
    想转行DevOps工程师?快来看看DevOps工程师的学习路径,少走弯路
    8.11模拟赛总结
    ClickHouse 存算分离改造:小红书自研云原生数据仓库实践
  • 原文地址:https://blog.csdn.net/m0_62309595/article/details/126150271
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号