【技术性】AI/ML知识

  1. 做ML最重要的是啥!!跟我念三遍!!LOOK INTO THE DATA! LOOK INTO THE DATA!! LOOK INTO THE DATA!!! 可以多使用visualization工具来帮助自己理解data。
  2. Pandas

    1. 引入:import pandas as pd

      常也需import numpy as np
    2. create df:

      df = pd.DataFrame(...)
    3. selection:

      选列:df['A']
      选行:df[0:3]
      多维:df.loc[:, ['A', 'B']]或df.iloc[:, 0:2]
      选值:df.at[2,'A']或者df.iloc[2,0]
    4. 处理空值:df.dropna df.fillna
    5. apply funcs:df.apply(lambda)
    6. SQL-like join: pd.merge(A, B, on="...")
    7. 文件:df.to_csv("...") pd.read_csv("...")
  3. filtering的pitfall:
    用于filter training data的就不可以再作为feature, e.g.
    如果用age < 18来filter了training set,那么age就不可以再作为feature,否则模型就会严重学习到age < 18这条手动规则
  4. Ngrams:
    一段text里相临近的n个单词,ngram feature每次就以n为窗口计算
    ngram model一般是马尔科夫链算法,由前n-1个单词预测最后一个单词
  5. feature engineering:
    如何提出好的feature:1)凭直觉 e.g.头发长短用于判断性别; 2)用数据做correlation分析
  6. ROC曲线:
    横坐标FPR, 纵坐标TPR, 每个点上都有threshold,可以根据距离(0,1)点最近的曲线上点来选择threshold。(但一般都是0.5不用动。)
  7. TFIDF:
    TFIDF = TF(词频) * IDF(逆向文件频率)
    词频越大越重要
    idf越大,即出现词的文件数越少,越重要
  8. CNN概述:
    一般结构为

    kernals(window) --> convolution layer --> pooling operation --> vectorization

    卷积层:一组平行的feature map,之后经过激活函数(如sigmoid)来决定该神经元是否被激活。
    池化层:downsampling,有助于减少param数量并避免overfit
    常见池化方法:max,min,avg,l2等

  9. Model deployment:
    client request-->server-->(sharding service)-->fetch model from storage (e.g. HDFS, S3)-->load model
  10. 预处理
    一般都要包括去重(!非常重要!否则会overfit和bias)和处理N/A值
  11. train、test set split的pitfall:
    注意不能有data leak!!!所以去重真的非常重要啊。
  12. 一般的ranking backend结构:
    一般first stage做filter(这样结果才能变少啊),second stage做rank。
    所以先filter model,然后再ranking models
  13. 如果应对position bias(e.g.排第一个的结果收到的点击最多):
    predict as if they are all shown at position 0
    include position feature
    counterfactual evaluation
  14. Training package:
    训练代码一般都会打包成package通过command来跑。
    一般都是batch training,把行进行batch处理。

你可能感兴趣的:(人工智能,ml)