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)
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是第二个。
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]) #右图
热点图heatmap( ) sns.heatmap(fraud_data_new.drop('Class', 1).corr(), ax=ax1, vmin=-1, vmax=1)
vmin,vmax:用于指定图例中最小值与最大值的显示值
ax:用于指定子图的位置