暗記メーカー

お問い合わせ
ログイン
Python データ分析
  • 柴原弘輝

  • 問題数 40 • 11/18/2023

    問題一覧

  • 1

    フラッシュカード: `LogisticRegression`のパラメーター

    ### フラッシュカード: `LogisticRegression`のパラメーター **解説**: - `LogisticRegression`は、分類問題に使用される線形モデルの一つ。 - `penalty='l2'`は、正則化の種類をL2とすることを指定する(過学習を防ぐ)。 - `solver='sag'`は、最適化問題の解法として'Stochastic Average Gradient descent'を使うことを指定する。 - `random_state=0`は、乱数生成器のシードを0に設定する(結果の再現性を確保するため)。 **コード例**: ```python from sklearn.linear_model import LogisticRegression # LogisticRegressionモデルのインスタンス化 model = LogisticRegression(penalty='l2', solver='sag', random_state=0) # モデルのトレーニング(仮のデータを使用) # model.fit(X_train, y_train) ``` **結果**: - `model`はL2正則化とSAGソルバーを用いたロジスティック回帰モデル。 - `random_state`により、モデルのトレーニングが再現可能。

  • 2

    フラッシュカード: `LabelEncoding` in Scikit-learn (Often Referred as `LabelEncoder`)

    ### フラッシュカード: `LabelEncoding` in Scikit-learn (Often Referred as `LabelEncoder`) **解説**: - Scikit-learnの`LabelEncoder`は、カテゴリカルな文字列を数値に変換するためのユーティリティ。 - これは、機械学習モデルが文字列データを直接処理できない場合に役立つ。 - 各異なる文字列カテゴリは一意の整数にマッピングされる。 **コード例**: ```python from sklearn.preprocessing import LabelEncoder # サンプルデータの作成 data = ['apple', 'banana', 'cherry'] # LabelEncoderのインスタンス化 label_encoder = LabelEncoder() # データの変換 encoded_data = label_encoder.fit_transform(data) ``` **結果**: - `encoded_data`は、元の文字列データが整数に変換された配列。例えば、'apple'、'banana'、'cherry'がそれぞれ0、1、2に変換される。

  • 3

    NumPyの`default_rng()`と`standard_normal()`メソッド

    ### フラッシュカード: NumPyの`default_rng()`と`standard_normal()`メソッド **解説**: - `np.random.default_rng(123)`は、シード値123を使用してNumPyの新しい乱数生成器インスタンスを作成する。 - シード値は乱数生成の再現性を確保するために使われる。 - `rng.standard_normal(size=(4, 2))`メソッドは、標準正規分布(平均0、標準偏差1)に従うランダムな実数を含む4x2の配列を生成する。 **コード例**: ```python import numpy as np # シード値123を使って乱数生成器を初期化 rng = np.random.default_rng(123) # 標準正規分布に従うランダムな実数を含む4x2の配列を生成 random_normals = rng.standard_normal(size=(4, 2)) ``` **結果**: - 生成された配列は、標準正規分布に従うランダムな実数を含む4x2の配列。 - この配列の具体的な値は、乱数生成器のシード値に依存する。

  • 4

    `a[np.newaxis, :]`

    ### フラッシュカード: `a[np.newaxis, :]` **解説**: - `a[np.newaxis, :]`は、NumPy配列`a`に新しい軸(次元)を追加するための操作。 - `np.newaxis`は、配列に新しい次元を挿入する特別なインデックス。 - この操作は、1次元配列を2次元の行ベクトルに変換するのに使われる。 **コード例**: ```python import numpy as np # 1次元配列の定義 a = np.array([1, 2, 3]) # 配列に新しい次元を追加(行ベクトルに変換) new_axis_array = a[np.newaxis, :] ``` **結果**: - `new_axis_array`は2次元の行ベクトル、例えば `[[1, 2, 3]]`。

  • 5

    pd.data_range()

    ### フラッシュカード: `df.data_range()` **解説**: - `df.data_range()` は Pandas に存在しないメソッドです。もし日付の範囲を生成したい場合は、Pandas の `pd.date_range()` 関数を使用することが適切です。 - `pd.date_range()` は、指定された頻度で日付のシーケンスを生成するために使用されます。 - 開始日、終了日、頻度(`freq`)などのパラメータを指定できます。 **コード例**: ```python import pandas as pd # 日ごとの頻度で日付の範囲を生成 date_range = pd.date_range(start='2020-01-01', end='2020-01-10', freq='D') ``` **結果**: - `date_range` は 2020年1月1日から2020年1月10日までの日付を含む DatetimeIndex オブジェクトです。

  • 6

    matplotの「label」「ticks」「minorticks_on」「grid」「lim」とは?

    画像のとおり

  • 7

    `df.query()`

    ### フラッシュカード: `df.query()` **解説**: - `df.query()`は、PandasのDataFrameに対して条件式を使ってデータをフィルタリングするメソッドです。 - このメソッドは、文字列形式で与えられた条件式を使用してDataFrameからデータを選択します。 - `query`は読みやすい条件文を記述でき、複雑な条件でのデータ選択を簡単に行えます。 **コード例**: ```python import pandas as pd # サンプルデータフレームの作成 df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}) # 'A'列が2より大きい行を選択 filtered_df = df.query('A > 2') ``` **結果**: - `filtered_df`は、'A'列の値が2より大きい行を含むDataFrameです。この例では、'A'が3と4の行が選択されます。

  • 8

    `pd.date_range()`の必須引数と任意引数

    ### フラッシュカード: `pd.date_range()`の必須引数と任意引数 **解説**: - **必須引数**: - `pd.date_range()`は、少なくとも1つの日付/時刻に関する情報を必要とします。通常は`start`(開始日時)または`end`(終了日時)がこれに当たります。 - `start`と`end`の両方を指定することもできますが、最低限どちらか一方が必要です。 - **任意引数**: - `freq`: 日付/時刻の生成間隔を指定する(例: 'D'は日単位)。 - `periods`: 生成する日付/時刻の総数を指定する。 - `tz`: タイムゾーンを指定する。 - 他にも`closed`(範囲の開閉を指定)、`normalize`(日付/時刻を正規化するかどうか)などがあります。 **コード例**: ```python import pandas as pd # 'start'のみを指定して日付範囲を生成 date_range_start = pd.date_range(start='2021-01-01', periods=5, freq='D') # 'start'と'end'を指定して日付範囲を生成 date_range_start_end = pd.date_range(start='2021-01-01', end='2021-01-05') ``` **結果**: - `date_range_start`は、2021年1月1日から始まる5日間の日付範囲。 - `date_range_start_end`は、2021年1月1日から2021年1月5日までの日付範囲。

  • 9

    ROC(受信者操作特性)曲線

    ### フラッシュカード: ROC(受信者操作特性)曲線 **解説**: - ROC(受信者操作特性)曲線は、分類問題の性能を評価するためのツールです。 - ROC曲線は、真陽性率(TPR, True Positive Rate)と偽陽性率(FPR, False Positive Rate)の関係をプロットしたものです。 - TPRはy軸に、FPRはx軸に表示され、曲線下の面積(AUC, Area Under the Curve)が大きいほど、分類器の性能が良いことを示します。 - ROC曲線は、異なる閾値での分類器の性能を比較し、感度と特異度のトレードオフを視覚化します。 **コード例**: ```python import numpy as np from sklearn.metrics import roc_curve, auc from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split # 人工的な分類データの生成 X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, random_state=42) # 訓練データとテストデータに分割 X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # ランダムフォレスト分類器の訓練 classifier = RandomForestClassifier() classifier.fit(X_train, y_train) # テストデータの予測確率を計算 y_pred_prob = classifier.predict_proba(X_test)[:, 1] # ROC曲線の計算 fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob) roc_auc = auc(fpr, tpr) ``` **結果**: - `fpr`, `tpr`, `thresholds` はROC曲線を描くための偽陽性率、真陽性率、閾値の配列。 - `roc_auc` はROC曲線下の面積を示し、分類器の性能を表す指標です。

  • 10

    %memit

    用語: %memit 定義: `%memit` はJupyterノートブックのマジックコマンドで、`memory_profiler` モジュールによって提供されます。このコマンドは、Jupyterノートブック内の特定のセルで実行されるコードのメモリ使用量を測定します。`%memit` は、実行中のコードが消費するメモリの量を把握し、パフォーマンスの最適化に役立てるために使用されます。 フラッシュカード: - 用語: %memit - 定義: Jupyterノートブックでコードのメモリ使用量を測定するためのマジックコマンド。 - 使い方: Jupyterノートブックのセルに `%memit` と記述し、その後に測定したいコードを記述する。 - 例: ```python %memit sum([i**2 for i in range(10000)]) ``` この例では、リスト内包表記を使用して0から9999までの数の二乗の合計を計算し、その操作のメモリ使用量を `%memit` コマンドで測定しています。メモリの使用量を把握することは、特に大規模なデータ処理や長時間実行されるアプリケーションの最適化において重要です。