python有关数据预处理的库

1、sklearn.preprocessing

数据预处理StandardScaler:如果某个特征的方差远大于其它特征的方差,那么它将会在算法学习中占据主导位置,导致我们的学习器不能像我们期望的那样,去学习其他的特征,这将导致最后的模型收敛速度慢甚至不收敛,因此我们需要对这样的特征数据进行标准化/归一化。

标准化数据通过减去均值然后除以方差(或标准差),这种数据标准化方法经过处理后数据符合标准正态分布,即均值为0,标准差为1,转化函数为:x =(x - 𝜇)/𝜎 

         data['Amount'] = StandardScaler().fit_transform(data['Amount'].values.reshape(-1,1)

         如果fit_transform传入的数据只有一列需要加values.reshape(-1,1)

 

2、pandas

读csv文件,删除某一列的代码:

import pandas as pd
df=pd.read_csv('F:\\岁月安好\\creditcard.csv', header=None,low_memory=False)
d=df.drop([0],axis=1)
d.to_csv('F:\\岁月安好\\creditcard_without_time',header=False,index=False)

 

3、sklearn.model_selection  参考链接:https://www.cnblogs.com/qi-yuan-008/p/11997248.html

train_test_split是sklearn中用于划分数据集,即将原始数据集划分成测试集和训练集两部分的函数

 

   X_train,X_test,y_train,y_test = train_test_split(X,y,train_size = 0.75, random_state=14, stratify=y)

train_size:训练集大小

  float:0-1之间,表示训练集所占的比例

  int:直接指定训练集的数量

  None:自动为测试集的补集,也就是原始数据集减去测试集

test_size:测试集大小,默认值是0.25

  float:0-1之间,表示测试集所占的比例

  int:直接指定测试集的数量

  None:自动为训练集的补集,也就是原始数据集减去训练集

random_state:可以理解为随机数种子,主要是为了复现结果而设置

shuffle:表示是否打乱数据位置,True或者False,默认是True

stratify:表示是否按照样本比例(不同类别的比例)来划分数据集,例如原始数据集 类A:类B = 75%:25%,那么划分的测试集和训练集中的A:B的比例都会是75%:25%;可用于样本类别差异很大的情况,一般使用为:stratify=y,即用数据集的标签y来进行划分。

 

4、imblearn.over_sampling

#SMOTE过采样

from imblearn.over_sampling import SMOTE, ADASYN 

X_resampled, y_resampled = SMOTE().fit_resample(X, y) 

print(sorted(Counter(y_resampled).items()))

SMOTE: 对于少数类样本a, 随机选择一个最近邻的样本b, 然后从a与b的连线上随机选取一个点c作为新的少数类样本;

 

5、matplotlib.pyplot

subplots创建多个子图       f, [ax1, ax2] = plt.subplots(2, 1, sharex=True, figsize=(14,6))  子图的位置两行一列

plt.subplots()是一个函数,bai返回一个包含figure和axes对象的元组,因du此,使用fig,ax=plt.subplots()将元组分解为fig和ax两个变量

把父图分成2*2个子图,ax1便是第一个子图,ax2是第二个。

 

6、seaborn   参考博客:https://blog.csdn.net/qq_39949963/article/details/79362501

displot()集合了matplotlib的hist()与核函数估计kdeplot的功能,增加了rugplot分布观测条显示与利用scipy库fit拟合参数分布的新颖用途。

from scipy.stats import *
sns.distplot(x,hist=False,fit=norm) #拟合标准正态分布

通过hist和kde参数调节是否显示直方图及核密度估计(默认hist,kde均为True

import matplotlib.pyplot as plt
fig,axes=plt.subplots(1,3) #创建一个一行三列的画布
sns.distplot(x,ax=axes[0]) #左图
sns.distplot(x,hist=False,ax=axes[1]) #中图
sns.distplot(x,kde=False,ax=axes[2]) #右图

https://www.cnblogs.com/onemorepoint/p/8306885.html

 热点图heatmap( ) sns.heatmap(fraud_data_new.drop('Class', 1).corr(), ax=ax1, vmin=-1, vmax=1)

 vmin,vmax:用于指定图例中最小值与最大值的显示值

ax:用于指定子图的位置

 

posted @ 2020-07-30 12:35  吉吉的奥利奥  阅读(281)  评论(0编辑  收藏  举报