机器学习笔记 (三)监督学习一般流程

监督学习一般流程

  • 监督学习一般流程
    • 数据预处理
      • 数据预处理实现

监督学习一般流程

机器学习笔记 (三)监督学习一般流程_第1张图片

也可以是:

观察数据集,正负样本是否均衡(看正负样本数据量是否差别过大)

不均衡:under sample(随机采样)或者over sample(利用imblearn中的SMOTE算法)

均衡:直接到下一步:

  1. 观察缺失值,进行补全,要是标签缺失,直接drop
  2. 数据归一化处理
  3. 观察可以合并的数据集,将多个特征变为一个(例如特征里有公分和英尺)观察可以合并的数据集,将多个特征变为一个(例如特征里有公分和英尺)
  4. 离散数据进行one-hot编码离散数据进行one-hot编码
  5. 观察数据之间的联系,自己造有用的特征观察数据之间的联系,自己造有用的特征
  6. 将多余的特征清除,新造的特征拼接到一起将多余的特征清除,新造的特征拼接到一起
  7. 将数据分为训练集和测试集将数据分为训练集和测试集
  8. 选择合适模型选择合适模型
  9. 通过交叉验证选择模型所需的合适参数通过交叉验证选择模型所需的合适参数
  10. 选择合适的评测标准进行评测(recall、精度等) 选择合适的评测标准进行评测(recall、精度等)

数据预处理

这里借用 Github 100-Days-Of-ML-Code 项目

机器学习笔记 (三)监督学习一般流程_第2张图片

数据预处理实现

如图所示,通过6步完成数据预处理。

此例用到的数据,代码。

  • 第1步:导入库
import numpy as np
import pandas as pd
  • 第2步:导入数据集
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[ : , :-1].values
Y = dataset.iloc[ : , 3].values
  • 第3步:处理丢失数据
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)
imputer = imputer.fit(X[ : , 1:3])
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()
    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)
  • 第6步:特征量化
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)

你可能感兴趣的:(#,机器学习学习笔记)