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

一、数据预处理
数据(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已经被拟合好了
    # 对因变量不需要缩放
    

二、总结

数据预处理步骤:导入标准库->导入数据集->缺失数据处理(可能不需要)->分类数据(可能不需要)->将数据分成训练集和测试集->特征缩放(可能不需要)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值