python labelencoder参数_sklearn-标准化标签LabelEncoder

本文介绍了Python机器学习中用于标签标准化的LabelEncoder,以及数据的标准化处理,包括StandardScaler(均值为0,方差为1)、MinMaxScaler(0到1范围)和归一化方法(L1、L2范数)。通过实例展示了这些方法的使用和效果。
摘要由CSDN通过智能技术生成

python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)

sklearn.preprocessing.LabelEncoder():标准化标签

standardScaler==features with a mean=0 and variance=1

minMaxScaler==features in a 0 to 1 range

normalizer==feature vector to a euclidean length=1

normalization

bring the values of each feature vector on a common scale

L1-least absolute deviations-sum of absolute values(on each row)=1;it is insensitive to outliers

L2-Least squares-sum of squares(on each row)=1;takes outliers in consideration during traing

# -*- coding: utf-8 -*-

"""

Created on Sat Apr 14 09:09:41 2018

@author:Toby

standardScaler==features with a mean=0 and variance=1

minMaxScaler==features in a 0 to 1 range

normalizer==feature vector to a euclidean length=1

normalization

bring the values of each feature vector on a common scale

L1-least absolute deviations-sum of absolute values(on each row)=1;it is insensitive to outliers

L2-Least squares-sum of squares(on each row)=1;takes outliers in consideration during traing

"""

from sklearn import preprocessing

import numpy as np

data=np.array([[2.2,5.9,-1.8],[5.4,-3.2,-5.1],[-1.9,4.2,3.2]])

bindata=preprocessing.Binarizer(threshold=1.5).transform(data)

print('Binarized data:',bindata)

#mean removal

print('Mean(before)=',data.mean(axis=0))

print('standard deviation(before)=',data.std(axis=0))

#features with a mean=0 and variance=1

scaled_data=preprocessing.scale(data)

print('Mean(before)=',scaled_data.mean(axis=0))

print('standard deviation(before)=',scaled_data.std(axis=0))

print('scaled_data:',scaled_data)

'''

scaled_data: [[ 0.10040991 0.91127074 -0.16607709]

[ 1.171449 -1.39221918 -1.1332319 ]

[-1.27185891 0.48094844 1.29930899]]

'''

#features in a 0 to 1 range

minmax_scaler=preprocessing.MinMaxScaler(feature_range=(0,1))

data_minmax=minmax_scaler.fit_transform(data)

print('MinMaxScaler applied on the data:',data_minmax)

'''

MinMaxScaler applied on the data: [[ 0.56164384 1. 0.39759036]

[ 1. 0. 0. ]

[ 0. 0.81318681 1. ]]

'''

data_l1=preprocessing.normalize(data,norm='l1')

data_l2=preprocessing.normalize(data,norm='l2')

print('l1-normalized data:',data_l1)

'''

[[ 0.22222222 0.5959596 -0.18181818]

[ 0.39416058 -0.23357664 -0.37226277]

[-0.20430108 0.4516129 0.34408602]]

'''

print('l2-normalized data:',data_l2)

'''

[[ 0.3359268 0.90089461 -0.2748492 ]

[ 0.6676851 -0.39566524 -0.63059148]

[-0.33858465 0.74845029 0.57024784]]

'''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行数据分析和建模之前,需要进行一些数据预处理。以下是一些常见的预处理步骤: 1. 缺失值处理:检查数据集中是否存在缺失值,并决定如何处理它们。您可以删除包含缺失值的行或列,或者使用插补方法来填充缺失值。 ```python # 检查缺失值 print(data.isnull().sum()) # 删除包含缺失值的行 data.dropna(inplace=True) # 使用均值插补填充缺失值 data.fillna(data.mean(), inplace=True) ``` 2. 数据类型转换:检查每个变量的数据类型,并根据需要进行转换。例如,将日期变量转换为日期对象,将分类变量转换为数字编码等。 ```python # 将日期变量转换为日期对象 data['date'] = pd.to_datetime(data['date']) # 将分类变量转换为数字编码 from sklearn.preprocessing import LabelEncoder label_encoder = LabelEncoder() data['gender'] = label_encoder.fit_transform(data['gender']) ``` 3. 异常值处理:检查数据集中是否存在异常值,并决定如何处理它们。您可以删除异常值或使用插补方法来修复它们。 ```python # 检查异常值 print(data.describe()) # 删除超过3个标准差的异常值 data = data[(data['gross income'] - data['gross income'].mean()) / data['gross income'].std() < 3] ``` 4. 特征工程:创建新的特征或从现有特征中提取信息,以帮助模型更好地拟合数据。例如,从日期变量中提取月份或季节信息,计算销售额的百分比等。 ```python # 从日期变量中提取月份 data['month'] = data['date'].dt.month # 计算每个产品的销售额百分比 product_sales = data.groupby('product line')['gross income'].sum() data['product_sales_percent'] = data['product line'].apply(lambda x: product_sales[x] / data['gross income'].sum()) ``` 5. 特征缩放:对数值变量进行缩放,以避免模型受到变量单位的影响。常见的缩放方法包括标准化和归一化。 ```python # 使用标准化对数值变量进行缩放 from sklearn.preprocessing import StandardScaler scaler = StandardScaler() data[['unit price', 'quantity', 'total']] = scaler.fit_transform(data[['unit price', 'quantity', 'total']]) ``` 这些是常见的数据预处理步骤。当然,根据具体问题和数据集的不同,可能需要进行其他预处理步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值