Sklearn常用数据预处理方法介绍

主要介绍了Sklearn中常用的数据预处理方法。

数据预处理

1.导入用到的库

import numpy as np
import pandas as pd
from sklearn.preprocessing import Imputer
from sklearn.neighbors import LocalOutlierFactor
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import RobustScaler
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import Binarizer
from sklearn.cluster import KMeans 

2.读取数据集

  • “teenager_sns”包含30000个样本的美国高中生社交网络信息数据集。每个样本包含40个变量,其中 gradyear, gender, age和friends四个变量代表高中生的毕业年份、性别、年龄和好友数等基本信息。 其余36个变量代表36个词语,代表高中生的5大兴趣。
  • “accord_sedan_testing”是一个二手汽车数据集,包含二手汽车的价格、已行驶英里、上市年份、档次、引擎缸数、换挡方式等
teenager_sns = pd.read_csv("./input/teenager_sns.csv")
teenager_sns.head(5)

gradyear gender age friends basketball football soccer softball volleyball swimming ... blonde mall shopping clothes hollister abercrombie die death drunk drugs
0 2006 M 18.980 7 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
1 2006 F 18.801 0 0 1 0 0 0 0 ... 0 1 0 0 0 0 0 0 0 0
2 2006 M 18.335 69 0 1 0 0 0 0 ... 0 0 0 0 0 0 0 1 0 0
3 2006 F 18.875 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
4 2006 NaN 18.995 10 0 0 0 0 0 0 ... 0 0 2 0 0 0 0 0 1 1

5 rows × 40 columns

test = pd.read_csv('./input/accord_sedan_testing.csv')
# 将数据集中的已行驶英里数“mileage”与价格“price”汇总
data = test[['mileage','price']]
data.head()
mileage price
0 68265 12995
1 92778 9690
2 136000 8995
3 72765 11995
4 36448 17999

3.缺失值处理

缺失值(NaN)处理from sklearn.preprocessing import Imputer

"""
使用sklearn中的Imputer方法,将数据集“teenager_sns”中“age”列利用均值“mean”进行填充
"""
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
imp.fit(teenager_sns[["age"]])
teenager_sns["age_imputed"]=imp.transform(teenager_sns[["age"]])
# 显示年龄缺失的行,和插补缺失值之后的列"age_imputed"
teenager_sns[teenager_sns['age'].isnull()]

gradyear gender age friends basketball football soccer softball volleyball swimming ... mall shopping clothes hollister abercrombie die death drunk drugs age_imputed
5 2006 F NaN 142 0 0 0 0 0 0 ... 0 1 0 0 0 0 0 1 0 17.993949
13 2006 NaN NaN 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 17.993949
15 2006 NaN NaN 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 17.993949
16 2006 NaN NaN 135 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 17.993949
26 2006 F NaN 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 17.993949
38 2006 F NaN 17 0 0 0 0 0 0 ... 0 0 0 0 0 0 1 0 0 17.993949
41 2006 NaN NaN 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 17.993949
49 2006 M NaN 35 1 3 0 0 0 0 ... 0 0 0 0 0 0
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在scikit-learn(sklearn)中,有一些常用数据预处理方法可以帮助我们准备和处理数据。以下是一些常见的数据预处理方法: 1. 特征缩放(Feature Scaling):将不同特征的数值范围缩放到相同的尺度,常用方法有标准化(Standardization)和归一化(Normalization)。 - 标准化:使用 `sklearn.preprocessing.StandardScaler` 类可以将特征缩放为均值为0,方差为1的标准正态分布。 - 归一化:使用 `sklearn.preprocessing.MinMaxScaler` 类可以将特征缩放到指定的最小值和最大值之间。 2. 缺失值处理(Handling Missing Values):处理含有缺失值的数据,常用方法有删除缺失值、插补缺失值和使用特定值填充缺失值。 - 删除缺失值:使用 `sklearn.preprocessing.Imputer` 类中的 `remove()` 方法可以删除含有缺失值的样本。 - 插补缺失值:使用 `sklearn.preprocessing.Imputer` 类中的 `fit()` 和 `transform()` 方法可以对缺失值进行插补,常见的插补方法有均值、中位数和众数。 - 填充特定值:使用 `sklearn.preprocessing.Imputer` 类中的 `fit()` 和 `transform()` 方法可以使用特定值(如0或者指定的常数)来填充缺失值。 3. 标签编码(Label Encoding):将分类变量转换为数值编码,常用方法是使用 `sklearn.preprocessing.LabelEncoder` 类。 4. 独热编码(One-Hot Encoding):将分类变量转换为二进制编码,常用方法是使用 `sklearn.preprocessing.OneHotEncoder` 类。 5. 特征选择(Feature Selection):选择对目标变量具有较高预测能力的特征,常用方法有方差选择法、递归特征消除法和基于树模型的特征选择法。 - 方差选择法:使用 `sklearn.feature_selection.VarianceThreshold` 类可以通过阈值来选择方差大于指定阈值的特征。 - 递归特征消除法:使用 `sklearn.feature_selection.RFE` 类可以递归地选择特征,根据模型的性能来判断特征的重要性。 - 基于树模型的特征选择法:使用 `sklearn.feature_selection.SelectFromModel` 类可以基于树模型的特征选择方法,通过训练树模型来判断特征的重要性。 这些是scikit-learn中常用数据预处理方法,根据具体的问题和数据类型,可以选择合适的预处理方法来处理数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值