dataframe数据标准化处理_对数据集做标准化处理的几种方法——基于R语言

数据集——iris(R语言自带鸢尾花包)

一、scale函数

scale函数默认的是对制定数据做均值为0,标准差为1的标准化。它的两个参数center和scale:

1)center和scale默认为真,即T

2)center为真表示数据中心化

3)scale为真表示数据标准化

中心化:所谓数据的中心化是指数据集中的各项数据减去数据集的均值。

标准化:标准化就是数据在中心化之后再除以标准差。变换后值域为[0,1]。

# 标准化与中心化

data(iris) # 读入数据

head(iris) #查看数据

Standard0

head(Standard0)

Standard1

head(Standard1)

Standard2

head(Standard2)

二、用自建函数法

test

normalize

}

test_n

head(test_n)

三、caret包preProcess函数

preProcess函数可以对特征变量施行很多操作,包括中心化和标准化。preProcess函数每次操作都估计所需要的参数,并且由predict.preProcess 应用于指定的数据集。

相比自建函数,非数值型的变量是被允许的,但是将被忽略故够保留数据集右边的非数值变量。

standard4

iris_s

iris_s

参考资料:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据离散化处理是将连续型数据转换为离散型数据的过程,可以将数据划分为若干个区间(也称为“桶”),每个区间内的数据被视为相同的离散值。数据离散化处理通常用于数据挖掘、统计分析等领域。 在 Pandas 中,可以使用 cut() 和 qcut() 函数进行数据离散化处理。 cut() 函数将数据按照指定的区间划分为离散值,可以根据数据的最大值和最小值自动生成等距区间,也可以手动指定区间范围。 例如,下面的代码将一个 DataFrame 中的元素离散化为 5 个区间: ```python import pandas as pd data = pd.DataFrame({'value': [12, 34, 56, 78, 90, 23, 45, 67, 89, 100]}) bins = pd.cut(data['value'], 5) print(bins) ``` 输出结果为: ``` 0 (9.92, 28.8] 1 (28.8, 47.6] 2 (47.6, 66.4] 3 (66.4, 85.2] 4 (85.2, 104.0] 5 (9.92, 28.8] 6 (28.8, 47.6] 7 (47.6, 66.4] 8 (66.4, 85.2] 9 (85.2, 104.0] Name: value, dtype: category Categories (5, interval[float64]): [(9.92, 28.8] < (28.8, 47.6] < (47.6, 66.4] < (66.4, 85.2] < (85.2, 104.0]] ``` qcut() 函数将数据按照指定的分位数划分为离散值,可以根据数据的分布自动生成区间,也可以手动指定分位数。 例如,下面的代码将一个 DataFrame 中的元素离散化为 4 个区间: ```python data = pd.DataFrame({'value': [12, 34, 56, 78, 90, 23, 45, 67, 89, 100]}) bins = pd.qcut(data['value'], 4) print(bins) ``` 输出结果为: ``` 0 (11.999, 34.0] 1 (34.0, 56.0] 2 (56.0, 78.0] 3 (78.0, 100.0] 4 (78.0, 100.0] 5 (11.999, 34.0] 6 (34.0, 56.0] 7 (56.0, 78.0] 8 (78.0, 100.0] 9 (78.0, 100.0] Name: value, dtype: category Categories (4, interval[float64]): [(11.999, 34.0] < (34.0, 56.0] < (56.0, 78.0] < (78.0, 100.0]] ``` 在上面的例子中,cut() 函数和 qcut() 函数都返回了一个 Pandas 的 Categorical 类型的对象,可以通过 value_counts() 方法来统计每个区间内的元素个数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值