【技術的】AI/ML知識

2227 ワード

  • MLする最も重要なのは何です!!私と3回読みます!!LOOK INTO THE DATA! LOOK INTO THE DATA!! LOOK INTO THE DATA!!! visualizationツールを多く使用すると、dataを理解するのに役立ちます.
  • Pandas
  • 導入:import pandas as pd
       import numpy as np
  • create df:
    df = pd.DataFrame(...)
  • selection:
      :df['A']
      :df[0:3]
      :df.loc[:, ['A', 'B']] df.iloc[:, 0:2]
      :df.at[2,'A']  df.iloc[2,0]
  • 処理空の値:df.dropna df.fillna
  • apply funcs:df.apply(lambda)
  • SQL-like join: pd.merge(A, B, on="...")
  • ファイル:df.to_csv("...") pd.read_csv("...")

  • filteringのpitfall:filter training data用はfeatureとして使用できません.e.g.age<18でfilterがtraining setを使用すると、ageはfeatureとして使用できません.そうしないと、モデルはage<18という手動ルール
  • を深刻に学習します.
  • Ngrams:textに近いn個の単語、ngram featureは毎回nをウィンドウとしてngram modelを計算し、一般的にマルコフチェーンアルゴリズムであり、前のn-1個の単語から最後の単語
  • を予測する.
  • feature engineering:どのように良いfeatureを提出します:1)直感e.g.髪の毛の長さで性別を判断します;2)データによるcorrelation分析
  • ROC曲線:横座標FPR、縦座標TPR、各点にthresholdがあり、(0,1)点に最も近い曲線上点からthresholdを選択できます.(ただし、一般的には0.5は動かない.)
  • TFIDF:TFIDF=TF(ワード周波数)*IDF(逆ファイル周波数)ワード周波数が大きいほど重要idfが大きくなり、すなわち出現語のファイル数が少ないほど重要
  • となる.
  • CNN概要:一般的な構造は
    kernals(window) --> convolution layer --> pooling operation --> vectorization
    ボリューム層:平行なfeature mapのセットであり、その後sigmoidなどの活性化関数によってニューロンが活性化されるかどうかを決定する.プール層:downsamplingは、paramの数を減らし、overitの一般的なプール化方法を避けるのに役立つ:max、min、avg、l 2などの
  • Model deployment: client request-->server-->(sharding service)-->fetch model from storage (e.g. HDFS, S3)-->load model
  • 前処理は一般的に重量除去(!非常に重要!そうでなければoveritとbias)とN/A値
  • の処理を含む.
  • train、test set splitのpitfall:data leakがないことに注意!!!だから重いのは本当に重要ですね.
  • 一般的なranking backend構造:一般first stageはfilterを作り(これで結果が少なくなるでしょう)、second stageはrankを作ります.だからfilter modelを先に、それからranking models
  • position bias(e.g.の最初の結果に対応するクリックが最も多かった):predict as if they are all shown at position 0 include position feature counterfactual evaluation
  • Training package:トレーニングコードは一般的にpackageにパッケージ化されcommandを通じて走ります.普通はbatch trainingで、行をbatch処理します.