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処理します.