欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python----数据预处理

程序员文章站 2022-06-15 13:18:59
数据预处理模板(1)导入标准库(2)导入数据集(3)缺失和分类很少遇到(4)将数据集分割为训练集和测试集(5)特征缩放,大部分情况下不需要,但是某些情况需要特征缩放 ......
  1. 导入标准库
    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
  2. 导入数据集
    dataset = pd.read_csv('data (1).csv')  # read_csv:读取csv文件
    #创建一个包含所有自变量的矩阵,及因变量的向量
    #iloc表示选取数据集的某行某列;逗号之前的表示行,之后的表示列;冒号表示选取全部,没有冒号,则表示选取第几列;values表示选取数据集里的数据。
    x = dataset.iloc[:, :-1].values # 选取数据,不选取最后一列。
    y = dataset.iloc[:, 3].values # 选取数据,选取每行的第3列数据
  3. 缺失数据
    from sklearn.preprocessing import imputer #进行数据挖掘及数据分析的标准库,imputer缺失数据的处理
    #imputer中的参数:missing_values 缺失数据,定义怎样辨认确实数据,默认值:nan ;strategy 策略,补缺值方式 : mean-平均值 , median-中值 , most_frequent-出现次数最多的数 ; axis =0取列 =1取行 
    imputer = imputer(missing_values = 'nan', strategy = 'mean', axis = 0)
    imputer = imputer.fit(x[:, 1:3])#拟合fit
    x[:, 1:3] = imputer.transform(x[:, 1:3])
  4. 分类数据
    from sklearn.preprocessing import labelencoder,onehotencoder
    labelencoder_x=labelencoder()
    x[:,0]=labelencoder_x.fit_transform(x[:,0])
    onehotencoder=onehotencoder(categorical_features=[0])
    x=onehotencoder.fit_transform(x).toarray()
    #因为purchased是因变量,python里面的函数可以将其识别为分类数据,所以只需要labelencoder转换为分类数字
    labelencoder_y=labelencoder()
    y=labelencoder_y.fit_transform(y)
  5. 将数据集分为训练集和测试集
    from sklearn.model_selection import train_test_split
    x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0)
    #x_train(训练集的字变量),x_test(测试集的字变量),y_train(训练集的因变量),y_test(训练集的因变量)
    #训练集所占的比重0.2~0.25,某些情况也可分配1/3的数据给训练集;train_size训练集所占的比重
    #random_state决定随机数生成的方式,随机的将数据分配给训练集和测试集;random_state相同时会得到相同的训练集和测试集
  6. 特征缩放
    #特征缩放(两种方式:一:standardisation(标准化);二:normalisation(正常化))
    from sklearn.preprocessing import standardscaler
    sc_x=standardscaler()
    x_train=sc_x.fit_transform(x_train)#拟合,对x_train进行缩放
    x_test=sc_x.transform(x_test)#sc_x已经被拟合好了,所以对x_test进行缩放时,直接转换x_test
  7. 数据预处理模板
    (1)导入标准库
    (2)导入数据集
    (3)缺失和分类很少遇到
    (4)将数据集分割为训练集和测试集
    (5)特征缩放,大部分情况下不需要,但是某些情况需要特征缩放