机器学习-初级入门(数据预处理)

一、数据预处理
数据(Data.csv)

  Country   Age   Salary Purchased
   France  44.0  72000.0        No
    Spain  27.0  48000.0       Yes
  Germany  30.0  54000.0        No
    Spain  38.0  61000.0        No
  Germany  40.0      NaN       Yes
   France  35.0  58000.0       Yes
    Spain   NaN  52000.0        No
   France  48.0  79000.0       Yes
  Germany  50.0  83000.0        No
   France  37.0  67000.0       Yes
  1. 缺失数据处理

    dataset = pd.read_csv("Data.csv")
    X = dataset.iloc[:, :-1].values  # 自变量
    Y = dataset.iloc[:, 3].values  # 因变量
    
    # 处理缺失值, 将某列的平均值作为弥补(strategy="mean": 取平均值弥补缺失值,axis=0: 对应数据列)
    imputer = Imputer(missing_values='NaN', strategy="mean", axis=0)
    imputer = imputer.fit(X[:, 1:3])  # 拟合所有行,1~3取不到第三列
    X[:, 1:3] = imputer.transform(X[:, 1:3])  # 转化为处理后的缺失值
    
  2. 分类数据

    对国家进行分类(虚拟编码)
    France Spain Germany
     0      0      1         Germany   
     0      1      0         Spain
     1      0      0         France
    
    label_encoder_X = LabelEncoder()
    X[:, 0] = label_encoder_X.fit_transform(X[:, 0])
    one_hot_encoder = OneHotEncoder(categorical_features=[0])  # categorical_features: 对应列序号
    X = one_hot_encoder.fit_transform(X).toarray()
    # 同上对Purchased分类
    label_encoder_Y = LabelEncoder()
    Y = label_encoder_X.fit_transform(Y)
    
  3. 划分数据集, 训练数据集, 测试训练集(比重一般不超过0.4)

    x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=0)
    
  4. 特征缩放(利用欧式距离判断,为了让多个自变量变化程度缩小)

    标准化(StandardDeviation: 标准方差)
    x(stand) = x-mean(x) / StandardDeviation(x)
    
    正常化
    x(norm) = x-min(x) / max(x)-min(x)
    
    sc_x = StandardScaler()
    x_train = sc_x.fit_transform(x_train)  # 对自变量进行特征缩放(标准化)
    x_test = sc_x.transform(x_test)  # 上一步sc_X已经被拟合好了
    # 对因变量不需要缩放
    

二、总结

数据预处理步骤:导入标准库->导入数据集->缺失数据处理(可能不需要)->分类数据(可能不需要)->将数据分成训练集和测试集->特征缩放(可能不需要)
发布了153 篇原创文章 · 获赞 13 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章