机器学习和数据挖掘04-PowerTransformer与 MinMaxScaler

概念 PowerTransformer(幂变换器)

PowerTransformer 是用于对数据进行幂变换(也称为Box-Cox变换)的预处理工具。幂变换可以使数据更接近正态分布,这有助于某些机器学习算法的性能提升。它支持两种常用的幂变换:Yeo-Johnson变换和Box-Cox变换。

代码实现

from sklearn.preprocessing import PowerTransformer
import numpy as np

data = np.array([[1.0], [2.0], [3.0], [4.0], [5.0]])

transformer = PowerTransformer(method='yeo-johnson')
transformed_data = transformer.fit_transform(data)

print("Original Data:\n", data)
print("Transformed Data:\n", transformed_data)

概念MinMaxScaler(最小-最大缩放器)

MinMaxScaler 是用于将数据进行最小-最大缩放的预处理工具。它将数据缩放到指定的范围,通常是
0,到。这对于那些受到特征尺度影响的算法(如K近邻和支持向量机)非常有用。

代码实现

from sklearn.preprocessing import MinMaxScaler
import numpy as np

data = np.array([[1.0], [2.0], [3.0], [4.0], [5.0]])

scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(data)

print("Original Data:\n", data)
print("Scaled Data:\n", scaled_data)

### 数据整理技术在机器学习回归问题中的应用 #### 数据清理 对于存在噪声或错误的数据,数据清理是必不可少的过程。这包括识别并修正异常值、处理重复记录以及解决数据集中可能存在的其他质量问题[^3]。 #### 处理缺失值 当遇到含有缺失值的情况时,可以采用删除含缺失值的样本、填充均值/中位数或其他统计量的方法来填补这些空白。具体选择哪种方式取决于特征本身的分布特性及其在整个模型训练过程中所扮演的角色。 #### 特征缩放 为了使不同尺度上的变量能够公平竞争,在许多算法下都需要执行标准化(Standardization)或者归一化(Normalization)。例如,在线性回归中,未经过适当调整的不同数量级输入可能会导致某些参数被赋予过高的权重;而在距离度量型分类器里,则会直接影响到最近邻的选择准确性[^2]。 ```python from sklearn.preprocessing import StandardScaler, MinMaxScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X) minmax_scaler = MinMaxScaler(feature_range=(0, 1)) X_minmax_scaled = minmax_scaler.fit_transform(X) ``` #### 编码类别型变量 如果数据中含有非数值类型的属性,比如性别、颜色等标签形式的信息,则需通过独热编码(One-Hot Encoding)或者其他合适的手段将其转化为适合计算的形式。这样做不仅有助于提高预测性能,还能让解释变得更为直观简单[^4]。 ```python import pandas as pd from sklearn.preprocessing import OneHotEncoder encoder = OneHotEncoder(sparse=False) encoded_features = encoder.fit_transform(df[['category_column']]) df_encoded = pd.DataFrame(encoded_features, columns=encoder.get_feature_names_out(['category_column'])) ``` #### 创建新特征 基于领域专业知识创建新的有意义特征也是提升模型表现的重要途径之一。例如时间序列分析中提取周期成分作为额外维度加入原始特征空间内,或是利用业务逻辑组合现有字段形成复合指标等等。 #### 变换函数的应用 有时候直接使用的原始特征并不能很好地捕捉潜在模式,此时可以通过幂变换(Power Transformation),如Box-Cox 或 Yeo-Johnson 来改善这种状况,使得最终得到的结果更接近正态分布假设下的理想状态[^1]。 ```python from scipy.stats import boxcox from sklearn.preprocessing import PowerTransformer pt = PowerTransformer(method='yeo-johnson') transformed_data = pt.fit_transform(data.reshape(-1, 1)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丰。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值