Deliverooからオファーを受け取った後、この会社ではデータサイエンスマネージャーになることになっていた。私が職務を引き受ける準備をしている間、申し出は取り下げられました。当時、失業が長引いた場合に備えてエアバッグを持っていませんでした。最終的にFacebookからデータサイエンティストのポジションの2つのオファーを一度に取得するのに役立ったすべてをあなたと共有します。これが、数ヶ月前に私が見つけた困難な状況から抜け出すのに役立つことを願っています。
1.組織はすべての鍵です
私は、Google(およびDeepMind)、Uber、Facebook、Amazonで、データサイエンティストの立場に何らかの形で関連するすべてのことについてインタビューに行きました。ほとんどの場合、私は次のような業界から質問を受けました
- ソフトウェア開発
- 応用統計
- 機械学習
- データの処理、管理、視覚化
あなたがこれらすべての業界でスーパープロになることを誰も期待していません。しかし、あなたはそれらを十分に理解して、インタビュアーにあなたの能力と提案された立場を取る権利を納得させる必要があります。トピックをどれだけ深く理解する必要があるかは、仕事自体によって異なりますが、これは非常に競争の激しい分野であるため、どんな知識も役に立ちます。
Notionを使用してインタビューの準備を整理することをお勧めします。このツールは用途が広く、さらに、間隔を空けた繰り返しやアクティブなリコールなどの手法を適用できます。それらは、学習成果を強化し、データサイエンティストのインタビューで何度も出てくる重要な質問を明らかにするのに役立ちます。 AliAbdaalにはすばらしいガイドがいますNotionでメモを取るため。インタビュー中にあなたの可能性を最大化するのに役立ちます。
インタビューの直前に、私は常にNotionで、特に積極的にメモを繰り返していました。これにより、自分の能力に自信が持てるようになり、重要なトピックや用語が「作業記憶」にあることがわかったので、いくつかの質問の後に「nuuuuuu」と意味のある言葉を言って、貴重な時間を無駄にする必要がありません。
2.ソフトウェア開発
アルゴリズムの時間の複雑さに関する質問に常に答える必要はありません。しかし、データサイエンティストの仕事にはコーディングが必要です。ご存知のように、データサイエンスは1つの職業ではありませんが、多くの場合、この業界はソフトウェア開発を含むさまざまな分野から才能を引き付けます。したがって、効率的なコードを書くことのニュアンスを理解しているプログラマーと競争する必要があります。インタビューの前に1日1〜2時間過ごし、そのようなトピックの知識とスキルを習得および/または強化することをお勧めします。
- 配列。
- ハッシュテーブル。
- リンクリスト。
- 2つのポインターの方法。
- 文字列アルゴリズム(雇用者はこのトピックが大好きです)。
- バイナリ検索。
- アルゴリズムを分割して征服します。
- 並べ替えアルゴリズム。
- 動的プログラミング。
- 再帰。
正式な方法でアルゴリズムを研究しないでください。インタビュアーがアルゴリズムのニュアンスについて質問する可能性があり、迷子になる可能性があるため、これは役に立ちません。代わりに、各アルゴリズムの基礎をマスターすることをお勧めします。計算と空間の複雑さを調査し、これらすべてが高品質のコードを作成するために重要である理由を理解してください。
インタビュアーはアルゴリズムについて質問することがあるので、後でインタビューに答えやすくするために、基本的な要素と一般的なケーススタディを学ぶ価値があります。
たとえ時間がかかっても、考えられるすべての質問に答えるようにしてください。次に、決定モデルを見て、最適な戦略を決定してみてください。次に、答えを見て、なぜそうなのかを理解してみてください。「QuicksortO(n²)の平均時間の複雑さはなぜですか?」などの質問を自問してください。または「なぜ2つのポインタと1つのforループが3つのforループよりも意味があるのですか?」
3.適用された統計
応用統計は、データサイエンスにおいて重要な役割を果たします。重要度は、応募するポジションによって異なります。適用された統計は実際にどこで使用されますか?データから情報を整理、解釈、抽出する必要がある場合はいつでも。
インタビュー中は、次のトピックを注意深く検討することをお勧めします。
- ( , , , ).
- (, , 5 10 ).
- ( A / B-, T-, , - . .).
- ( , ).
- ( / ).
これが研究すべき膨大な量の情報であると思うなら、あなたは考えません。私はあなたがどれだけインタビューを求めることができ、あなたがあなたの準備を助けるためにあなたがオンラインでどれだけ見つけることができるかに驚いていました。2つのリソースが私が対処するのに役立ちました:
- 確率と統計の概要は、質問やセルフテスト試験など、上記のすべてをカバーする無料のコースです。
- 機械学習:ベイジアンと最適化の視点。これは、適用された統計というよりも、機械学習コースです。ただし、ここで説明する線形代数アプローチは、回帰分析の概念のニュアンスを理解するのに役立ちます。
ロートでそれを学ばないのが最善です。できるだけ多くのタスクを解決する必要があります。Glassdoorは、インタビューで通常遭遇する応用統計の質問のための優れたリポジトリです。私が受けた最も困難なインタビューは、G-Researchでのインタビューでした。しかし、私はその準備を本当に楽しんでいました。Glassdoorは、このトピックの習得がどこまで進んだかを理解するのに役立ちました。
4.機械学習
ここで、最も重要なこと、つまり機械学習について説明します。しかし、このトピックは非常に広大であるため、単に迷子になる可能性があります。
以下は、機械学習を開始するための非常に強固な基盤を提供するいくつかのリソースです。これは、トピックごとにランク付けされた、網羅的なトピックのセットとはほど遠いものです。
指標-分類
—
-, Over/Under-Fitting
Sampling
仮説テスト
このトピックは、適用された統計に関するものですが、特にA / Bテストでは非常に重要です。
回帰モデル
線形回帰について利用できる情報は豊富にあります。他の回帰モデルに精通している必要があります。
クラスタリングアルゴリズム
分類モデル
- ロジスティック回帰(最も重要な、うまく修正する)
- 重回帰
- XGBoost
- ベクターマシンをサポート
それはたくさんありますが、適用された統計を理解していればそれほど怖くはありません。インタビュアーはいつでも「他にどのような方法を使用できますか、長所/短所は何ですか?」と尋ねることができるため、少なくとも3つの異なる分類/回帰/クラスタリング方法のニュアンスを学ぶことをお勧めします。これは知識のほんの一部ですが、これらの重要な例を知っていれば、インタビューははるかにスムーズになります。
5.データ処理と視覚化
「機械学習アルゴリズムを適用する前に、データ処理とクリーニングの段階について教えてください。」
特定のデータセットが提供されます。何よりもまず、EDAを達成できることを証明することです。 Pandasを使用するのが最善です。正しく使用すれば、データ分析ツールボックスで最も強力なツールです。 Pandasを使用してデータを処理する方法を学ぶための最良の方法は、多数のデータセットをダウンロードして操作することです。
インタビューの1つで、データセットの読み込み、クリーンアップ、レンダリング、選択、構築、評価をすべて1時間で行う必要がありました。本当にクレイジーで、とても大変でした。しかし、私はこれらすべてを数週間練習していたので、スレッドを失ったとしても、何をすべきかを知っていました。
データの整理
人生には、死、税金、データセットのマージ要求の取得という3つの重要なことがあります。パンダは仕事にほぼ完璧ですので、練習、練習、練習してください。
データプロファイリング
このタスクには、データの数値的、カテゴリ的、および時間的特性の形状と説明など、データセットの「メタ」特性を理解することが含まれます。 「私が持っている観察の数」、「各関数の分布はどのように見えるか」、「これらの関数は何を意味するか」などの一連の質問に答えるように常に努力する必要があります。この種の早期プロファイリングは、何千ものレベル(名前、一意の識別子)を持つカテゴリ機能など、無関係な機能を最初から捨てて、将来のあなたとあなたのコンピュータの作業量を減らすのに役立ちます(ハードではなくスマートに作業します。またはそのようなものが目覚めた)。
データの視覚化
ここで、「私の関数の分布は一般的にどのように見えますか?」と自問します。簡単なヒント:チュートリアルの「応用統計」の部分でボックスプロットについて学習しなかった場合は、異常値を視覚的に識別する方法を学習する必要があるため、今がその時です。カーネル密度のヒストグラムとグラフは、各関数の分布のプロパティを表示するときに非常に便利なツールです。
次に、「関数間の関係はどのように見えるか」と尋ねる場合があります。その場合、Pythonには、ペアプロットや相関プロット用の優れたヒートマップなどのクールで強力なツールを含むseabornというパッケージがあります。
null値、構文エラー、および重複する行/列の処理
値の欠落は避けられません。この問題はさまざまな要因から発生し、それぞれが独自の方法でオフセットに影響を与えます。不足している値を処理する最善の方法を学ぶ必要があります。null値の処理方法については、このガイドを確認してください。
構文エラーは通常、データセットにフォームなどを介して手動で入力された情報が含まれている場合に発生します。 「Hot」、「hOt」、「hot / n」は一意のレベルと見なされるため、これにより、カテゴリ関数には実際よりもはるかに多くのレベルがあるという誤った結論につながる可能性があります。ダーティテキストデータの処理については、このリソースを確認してください。
最後に、重複する列は不要であり、重複する行は表示を歪める可能性があるため、早期に対処する価値があります。
標準化または正規化
使用しているデータセットと使用する機械学習方法によっては、さまざまな変数のさまざまなスケールがモデルのパフォーマンスに悪影響を与えないように、データを標準化または正規化すると役立つ場合があります。
一般的に、トレーニングがどれだけ私を助けたかを理解するのに役立ったのは、「すべてを覚えている」という態度ではありませんでした。上記のすべてが、選ばれた少数の人だけが習得できる難解な概念ではないことに気付く前に、私は多くのインタビューに失敗しました。これらは、データサイエンティストがクールなモデルを構築し、データから重要な洞察を得るために使用するツールです。
このトピックにおいて:
- インタビュー「私は日常業務を恐れていましたが、データサイエンスではすべてが異なります」;
- 実用的なオンラインコース「職業」データ科学者。