机器学习之数据预处理

本文详细介绍了机器学习中数据预处理的七个关键步骤,包括数据特征理解、均值移除、范围缩放、归一化、二值化、独热编码和标签编码。通过这些方法,可以统一数据的基准值、分散度,以及转换非数值特征,为后续的模型训练做好准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据预处理

1、数据特征

              一列一特征
                        |
                        v
一行一样本 ->  x x x x x \                  y y y
                        x x x x x  | 样本矩阵   y y y
                        x x x x x /                   y y y


姓名    年龄    身高    体重    ...
张飞    22       1.75   60      
赵云    20       1.80   70
...

2、均值移除

目的:为了统一样本矩阵中不同特征的基准值和分散度,可以将各个特征的平均值调整为0,标准差调整为1,这个过程称为均值移除。

(1)均值移除原理操作示例

a, b, c                       # 三个数据源
m=(a+b+c)/3                   # 原始均值
a`=a-m, b`=b-m, c`=c-m        # (均值移除)操作
m'=(a`+b`+c`)/3=(a+b+c)/3-3m/3=0      # 处理后均值为0

A, B, C                       # 三个数据源
s=sqrt((A^2+B^2+C^2)/3)       # 原始标准差
A/s B/s C/s                   # (均值移除)操作
s'=sqrt((A^2/s^2+B^2/s^2+C^2/s^2)/3)     # 处理后标准差为1
   =sqrt((A^2+B^2+C^2)/s^2/3)
   =sqrt(s^2/s^2)
   =1
import numpy as np

raw_samples = np.array([         # 原始数据
    [3, -1.5, 2, -5.4],
    [0, 4, -0.3, 2.1],
    [1, 3.3, -1.9, -4.3]])

std_samples = raw_samples.copy()   # copy一份
for col in std_samples.T:  # 拿出每一列
    col_mean = col.mean()     # 均值
    col_std = col.std()      # 标准差
    col -= col_mean      # 均值移除
    col /= col_std       # 均值移除

print(std_samples)
print(std_samples.mean(axis=0))
print(std_samples.std(axis=0))

(2)使用 sklearn 库实现均值移除:

sklearn.preprocessing.scale(原始样本矩阵)
   
 ->均值移除后的样本矩阵
# -*- coding: utf-8 -*-
import numpy as np
import sklear
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值