牛客题解 | 特征扩展实现

题目

题目链接

特征扩展是一种数据预处理技术,包括特征缩放、特征标准化、特征归一化、特征正则化等。本题考察的是特征缩放和特征标准化。

特征缩放是一种将输入数据转换为统一尺度的方法,它通过将输入数据中的每个元素进行缩放,来使得输入数据中的每个元素的值统一在某个尺度之下。

特征标准化是将输入数据转换为均值为0,方差为1的分布。

本题中要求了标准化和最大最小归一化,对应的公式为:
x s t a n d a r d i z e d = x − μ σ x_{standardized} = \frac{x - \mu}{\sigma} xstandardized=σxμ
x n o r m a l i z e d = x − min ⁡ ( x ) max ⁡ ( x ) − min ⁡ ( x ) x_{normalized} = \frac{x - \min(x)}{\max(x) - \min(x)} xnormalized=max(x)min(x)xmin(x)

标准代码如下

def feature_scaling(data):
    mean = np.mean(data, axis=0)
    std = np.std(data, axis=0)
    standardized_data = (data - mean) / std
    
    min_val = np.min(data, axis=0)
    max_val = np.max(data, axis=0)
    normalized_data = (data - min_val) / (max_val - min_val)
    
    return np.round(standardized_data,4).tolist(), np.round(normalized_data,4).tolist()

需要注意的是,scipy库中也有对应的特征缩放方法,这里给出一种实现方式

def feature_scaling(data):
    from sklearn.preprocessing import StandardScaler, MinMaxScaler
    scaler = StandardScaler()
    standardized_data = scaler.fit_transform(data)
    scaler = MinMaxScaler()
    normalized_data = scaler.fit_transform(data)
    return np.round(standardized_data,4).tolist(), np.round(normalized_data,4).tolist()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值