Skip to content

Latest commit

 

History

History
62 lines (55 loc) · 3.66 KB

day1.md

File metadata and controls

62 lines (55 loc) · 3.66 KB

100days

day1 数据预处理


   #第一步 导入库,numpy:以矩阵为基础的数学计算模块,纯数学;pandas:处理分析表格数据的工具。
   import numpy as np          
   import pandas as pd 
     
   #第二步 导入数据库;读取csv文件  read_csv()方法: 从文件,url,文件型对象中加载带分隔符的数据。默认分隔符为逗号  
   #全部行or列;[a]第a行or列  iloc[前闭后开]方法:通过行号获取行数据,不能是字符(输出所有行第0列到倒数第二列的内容)
   dataset=pd.read_csv('Data.csv')    
   X=dataset.iloc[:,:-1].values      
   #print("X为: "+str(X));(输出所有行第三列的内容)
   Y=dataset.iloc[:,3].values       
   #print("Y为: "+str(Y))

   #第三步 处理丢失数据
   #从sklearn.preprocessing模块中导入Imputer函数
   from sklearn.preprocessing import Imputer
   #告诉Imputer丢失数据的类型是nan,nan意为not a number;strategy采用均值策略,填补第0列;axis = 0指第0列,axis后面的值是指定一个轴做运算
   imputer=Imputer(missing_values="NaN",strategy="mean",axis=0) 
   #fit():求得训练集X的均值为训练集X固有的属性;X[:,1:3]是取所有行的第一列和第二列的内容。
   imputer=imputer.fit(X[:,1:3]) 
   #transform():通过找中心和缩放等实现标准化
   X[:,1:3]=imputer.transform(X[:,1:3])
   #print(X)

   #第四步 解决分类数据
   #LabelEncoder()是标签编码,即是对不连续的数字或者文本进行编号,转换成连续的数值型变量
   from sklearn.preprocessing import LabelEncoder,OneHotEncoder       
   labelencoder_X=LabelEncoder()
   #fit_transform(trainData)对部分数据先拟合(即先拟合数据),找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),
然后对该trainData进行转换transform从而实现数据的标准化归一化等等X[:,0]即取数组X所有行第0列的数据
   #创建虚拟变量
   X[:,0]=labelencoder_X.fit_transform(X[:,0]) 
   #OneHotEncoder()即独热编码,直观的来看就是有几个需要编码的状态就有几个比特;categorical_features是需要独热编码的列索引
   onehotencoder=OneHotEncoder(categorical_features=[0])    
   #toarray():按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。
   X=onehotencoder.fit_transform(X).toarray()          
   labelencoder_Y=LabelEncoder()
   Y=labelencoder_Y.fit_transform(Y)

   #第五步 拆分数据集为训练集合和测试集合
   from sklearn.model_selection import train_test_split
   #train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签。格式:
X_train,X_test, Y_train, Y_test=train_test_split(train_data,train_target,test_size=0.3, random_state=0);
random_state:其他参数一样的情况下你得到的随机数组每次都是不一样的train_data被划分的样本特征集train_target被划分的样本标签test_size如果是浮点数在0-1之间表示样本占比如果是整数的话就是样本的数量
   X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2,random_state=0) 
   
   #第六步 特征量化
   from sklearn.preprocessing import StandardScaler
   #StandardScaler():标准化数据,计算训练集的平均值和标准差,以便测试数据集使用相同的变换
   sc_X=StandardScaler()           
   X_train=sc_X.fit_transform(X_train)
   X_test=sc_X.transform(X_test)
   #print(X_train)
   #print(X_test)