分类:特征工程

用 Python 练习机器学习面试题

Lisa Stuart

Data Scientist

为什么做特征工程?

  • 从数据中提取更多信息
  • 创建更多相关特征
  • 提升预测模型效果的有效手段之一
用 Python 练习机器学习面试题

特征工程的收益

  • 提升学习算法的预测力
  • 让机器学习模型表现更佳!
用 Python 练习机器学习面试题

特征工程类型

  • 指示变量
  • 交互特征
  • 特征表示
用 Python 练习机器学习面试题

指示变量

  • 阈值指示器
    • 年龄:高中 vs 大学
  • 多个特征
    • 用作标记
  • 特殊事件
    • 黑色星期五
    • 圣诞节
  • 类别分组
    • 网站流量付费标记
      • Google AdWords{4}}
      • Facebook Ads
用 Python 练习机器学习面试题

交互特征

  • 求和
  • 乘积
  • 其他数学组合
用 Python 练习机器学习面试题

特征表示

  • 日期时间戳
    • 星期几
    • 小时
  • 将少见类别合并为"其他"
  • 将分类变量转为哑变量
    • (k - 1) 个二进制列
用 Python 练习机器学习面试题

不同的分类水平

  • 训练数据:
    • 模型以 [red, blue, green] 训练
  • 测试数据:

    • 模型以 [red, green, yellow] 测试
    • 测试含训练未见的新颜色
    • 有一种颜色缺失
  • 稳健的独热编码

1 https://blog.cambridgespark.com/robust-one-hot-encoding-in-python-3e29bfcec77e
用 Python 练习机器学习面试题

债务收入比

  • Monthly Debt
  • Annual Income/12
用 Python 练习机器学习面试题

特征工程常用函数

函数 返回
sklearn.linear_model.LogisticRegression 逻辑回归
sklearn.model_selection.train_test_split 训练/测试集切分函数
sns.countplot(x='Loan Status', data=data) 条形图
df.drop(['Feature 1', 'Feature 2'], axis=1) 删除特征列表
df["Loan Status"].replace({'Paid': 0, 'Not Paid': 1}) Loan Status 转为整数
pd.get_dummies() k - 1 个二进制特征
sklearn.metrics.accuracy_score(y_test, predict(X_test)) 模型准确率
用 Python 练习机器学习面试题

优秀教程:

用 Python 练习机器学习面试题

Passons à la pratique !

用 Python 练习机器学习面试题

Preparing Video For Download...