【技术性】AI/ML知识

  1. 作ML最重要的是啥!!跟我念三遍!!LOOK INTO THE DATA! LOOK INTO THE DATA!! LOOK INTO THE DATA!!! 能够多使用visualization工具来帮助本身理解data。
  2. Pandas算法

    1. 引入:import pandas as pdapp

      常也需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等fetch

  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处理。
相关文章
相关标签/搜索