ジュニアデータサイエンティスト面接質問:Python・SQL・統計・ML

Milad Bonakdar
著者
Python、pandas、SQL、統計、機械学習の基礎、プロジェクト説明を中心に、ジュニアデータサイエンティスト面接の準備を進めましょう。
はじめに
ジュニアデータサイエンティストの面接では、データをきれいに整えられるか、基本的な Python と SQL を書けるか、統計をわかりやすく説明できるか、簡単な機械学習の問題を筋道立てて考えられるかがよく見られます。強い回答は短く、実務的で、自分のプロジェクトや授業、インターン経験に結び付いています。
このガイドでは、最初に確認されやすい領域を練習できます。Python の基礎、pandas によるデータ操作、SQL 的な考え方、確率と統計、モデル評価、そして経験を大きく見せすぎずに判断理由を説明する方法です。
Pythonの基礎 (5つの質問)
1. Pythonのリストとタプルの違いは何ですか?
回答:
- リスト: 可変(変更可能)、角括弧
[]で定義 - タプル: 不変(変更不可能)、丸括弧
()で定義 - パフォーマンス: タプルの方がわずかに高速で、使用するメモリが少ない
- ユースケース:
- リスト: データを変更する必要がある場合
- タプル: 固定コレクション、辞書のキー、関数の戻り値
希少度: 非常に一般的 難易度: 簡単
2. リスト内包表記について説明し、例を挙げてください。
回答: リスト内包表記は、既存のイテラブルに基づいてリストを作成するための簡潔な方法を提供します。
- 構文:
[expression for item in iterable if condition] - 利点: より読みやすく、ループよりも高速であることが多い
希少度: 非常に一般的 難易度: 簡単
3. ラムダ関数とは何ですか?また、いつ使用しますか?
回答: ラムダ関数は、名前のない、単一の式の関数です。
- 構文:
lambda arguments: expression - ユースケース: 短い関数、コールバック、ソート、フィルタリング
希少度: 非常に一般的 難易度: 簡単
4. リストのappend()とextend()の違いについて説明してください。
回答:
- append(): リストの末尾に単一の要素を追加します
- extend(): イテラブルから複数の要素を末尾に追加します
希少度: 一般的 難易度: 簡単
5. *argsと**kwargsとは何ですか?
回答: これらを使用すると、関数は可変の数の引数を受け入れることができます。
*args: 可変の数の位置引数 (タプル)**kwargs: 可変の数のキーワード引数 (辞書)
希少度: 一般的 難易度: 普通
統計と確率 (5つの質問)
6. 平均、中央値、最頻値の違いは何ですか?
回答:
- 平均: すべての値の平均 (合計 / カウント)
- 中央値: ソートされたときの中間の値
- 最頻値: 最も頻繁に出現する値
- いつ使うか:
- 平均: 正規分布データ
- 中央値: 歪んだデータまたは外れ値が存在する場合
- 最頻値: カテゴリカルデータ
希少度: 非常に一般的 難易度: 簡単
7. 分散と標準偏差について説明してください。
回答:
- 分散: 平均からの二乗偏差の平均
- 標準偏差: 分散の平方根 (データと同じ単位)
- 目的: データの広がり/ばらつきを測定する
希少度: 非常に一般的 難易度: 簡単
8. p値とは何ですか?また、どのように解釈しますか?
回答: p値は、帰無仮説が真であると仮定した場合に、観察されたものと同程度に極端な結果が得られる確率です。
- 解釈:
- p < 0.05: 帰無仮説を棄却 (統計的に有意)
- p ≥ 0.05: 帰無仮説の棄却に失敗
- 注意: p値は効果の大きさや重要性を測定しません
希少度: 非常に一般的 難易度: 普通
9. 中心極限定理とは何ですか?
回答: 中心極限定理は、サンプル平均のサンプリング分布は、母集団の分布に関係なく、サンプルサイズが増加するにつれて正規分布に近づくと述べています。
- 重要なポイント:
- 任意の分布に対して機能します (サンプルサイズが十分に大きい場合)
- n が 30 前後という目安は便利ですが保証ではありません。歪みが強いデータや裾の重いデータでは、より多くのサンプルが必要になることがあります
- 仮説検定と信頼区間を可能にします
希少度: 一般的 難易度: 普通
10. 相関と因果関係とは何ですか?
回答:
- 相関: 2つの変数間の統計的関係
- 因果関係: ある変数が別の変数の変化を直接引き起こす
- 重要なポイント: 相関は因果関係を意味しません
- 理由:
- 交絡変数
- 逆因果関係
- 偶然
希少度: 非常に一般的 難易度: 簡単
Pandasを使用したデータ操作 (5つの質問)
11. CSVファイルを読み込み、基本的な情報を表示するにはどうすればよいですか?
回答: pandasを使用してデータを読み取り、探索します。
希少度: 非常に一般的 難易度: 簡単
12. DataFrameの欠損値をどのように処理しますか?
回答: 欠損データを処理するための複数の戦略:
希少度: 非常に一般的 難易度: 簡単
13. pandasでデータをフィルタリングおよび選択するにはどうすればよいですか?
回答: データをフィルタリングおよび選択するための複数の方法:
希少度: 非常に一般的 難易度: 簡単
14. データをグループ化して集計するにはどうすればよいですか?
回答:
集計操作にはgroupby()を使用します:
希少度: 非常に一般的 難易度: 普通
15. DataFrameをマージまたは結合するにはどうすればよいですか?
回答:
merge()、join()、またはconcat()を使用します:
希少度: 非常に一般的 難易度: 普通
機械学習の基礎 (5つの質問)
16. 教師あり学習と教師なし学習の違いは何ですか?
回答:
- 教師あり学習:
- ラベル付きのトレーニングデータがある (入力-出力ペア)
- 目標: 入力から出力へのマッピングを学習する
- 例: 分類、回帰
- アルゴリズム: 線形回帰、決定木、SVM
- 教師なし学習:
- ラベル付きデータがない (入力のみ)
- 目標: データ内のパターンまたは構造を見つける
- 例: クラスタリング、次元削減
- アルゴリズム: K-Means、PCA、階層型クラスタリング
希少度: 非常に一般的 難易度: 簡単
17. 過学習とは何ですか?また、どのように防止しますか?
回答: 過学習は、モデルがトレーニングデータを過剰に学習し、ノイズを含み、新しいデータでパフォーマンスが低下する場合に発生します。
- 兆候:
- 高いトレーニング精度、低いテスト精度
- データに対してモデルが複雑すぎる
- 防止:
- より多くのトレーニングデータ
- 交差検証
- 正則化 (L1, L2)
- より単純なモデル
- 早期打ち切り
- ドロップアウト (ニューラルネットワーク)
希少度: 非常に一般的 難易度: 普通
18. トレーニングデータとテストデータ分割について説明し、その重要性について説明してください。
回答: トレーニングデータとテストデータ分割は、モデルのパフォーマンスを評価するために、データをトレーニングセットとテストセットに分割します。
- 目的: 過学習を防ぎ、現実世界のパフォーマンスを推定する
- 一般的な分割: 70-30または80-20 (トレーニング-テスト)
- 交差検証: より堅牢な評価
希少度: 非常に一般的 難易度: 簡単
19. 分類に使用する評価指標は何ですか?
回答: シナリオに応じたさまざまな指標:
- 精度: 全体的な正しさ (バランスの取れたデータセットに適している)
- 適合率: 予測された肯定のうち、どれだけが正しいか
- 再現率: 実際の肯定のうち、どれだけが見つかったか
- F1スコア: 適合率と再現率の調和平均
- 混同行列: 予測の詳細な内訳
希少度: 非常に一般的 難易度: 普通
20. 分類と回帰の違いは何ですか?
回答:
- 分類:
- 離散的なカテゴリ/クラスを予測
- 出力: クラスラベル
- 例: スパム検出、画像分類
- アルゴリズム: ロジスティック回帰、決定木、SVM
- 指標: 精度、適合率、再現率、F1
- 回帰:
- 連続的な数値の値を予測
- 出力: 数値
- 例: 住宅価格の予測、気温予測
- アルゴリズム: 線形回帰、ランダムフォレスト回帰
- 指標: MSE、RMSE、MAE、R²
希少度: 非常に一般的 難易度: 簡単


