モデリング 単語

736件

モデリング

2.0千文字の記事
  • twitter
  • facebook
  • はてな
  • LINE
曖昧さ回避 この記事は曖昧さ回避です

モデリング(modellingとは、モデル (model, 基準となるべき物)を組み立てることを意味する英単語である。転じて以下の意味で使われている。

  1. 科学的モデリング(Scientific modelling): 数理モデルを構築すること。
    1. 統計モデリング(Statistical modelling): 予測モデルを構築すること。
  2. 心理学的モデリング(Psychological modeling
  3. 3DCGの分野にいて、3次元モデルを作ること。
  4. 物理的立体造形物を作ること。

「統計モデリング」の概要

統計学機械学習にけるモデリングとは、予測モデル関数)を構築することである。例えば、広告費から売上げを予測したい場合、既知(過去)の広告費と売上げの関係のデータがあれば、これを用いて広告費xから売上げを予測する関数f(x)を構築することができる。以下、単回帰分析を用いたモデリング(予測モデルの構築)の実演を示す。

  1. Google Colaboratoryexitを開く
  2. ファイルメニューの「ノートブック新規作成」をクリック
  3. 「+ コードボタンクリックしてセルを用意
  4. 下記のコードセルコピペ
    !pip install japanize-matplotlib
    !wget -nc https://www.juse-p.co.jp/files/download/8/9305-6_Excel2007-2.zip
    !unzip -u -O Windows-31J 9305-6_Excel2007-2.zip
    
    %matplotlib inline
    import matplotlib.pyplot as plt
    import japanize_matplotlib
    import numpy as np
    import pandas as pd
    from sklearn.linear_model import LinearRegression
    import os.path
    
    print()
    
    xlabel, ylabel = "広告費(万円)", "売上げ(万円)"
    print("「{}」と「{}」の関係のデータ (欠損値を含む行を除く)".format(xlabel, ylabel))
    df = pd.read_excel(os.path.join(".", "Excel2007ファイル", "第2章Excel2007", "第2章単回帰分析_ソルバー.xlsx"), sheet_name="データ", index_col=0).dropna()
    display(df)
    
    # 説明変数
    X = df[xlabel].values.reshape((-1, 1))
    # 目変数
    y = df[ylabel].values
    # 予測モデル定義
    model = LinearRegression()
    # モデリング
    model.fit(X, y)
    
    # 可視化: 予測モデルグラフ表現と関数表現
    ax = df.plot.scatter(xlabel, ylabel)
    ax.set_title("$r={:,.3f}$".format(df.corr().iloc[0, -1]))  # 相関係数
    ax.set_xlim(0.0, 500.0)
    ax.set_ylim(0.0, 5000.0)
    ax.set_xlabel("$x$: " + ax.get_xlabel())
    ax.set_ylabel("$f(x)$: " + ax.get_ylabel())
    major_formatter = plt.FuncFormatter(lambda x, pos: "{:,.1f}".format(float(x)))
    ax.xaxis.set_major_formatter(major_formatter)
    ax.yaxis.set_major_formatter(major_formatter)
    for text, xy in df.iterrows():
        ax.annotate(text, xy)
    f = model.predict
    x = np.array([X.min(), X.max()]).reshape((-1, 1))
    ax.plot(x, f(x),
            color='red',
            label="$f(x)={beta1:,.3f}x{beta0:+,.3f}$\n$R^2={rsquared:,.3f}$".format(
                # 回帰数(傾き          beta1=model.coef_[0],
                # 切片
                beta0=model.intercept_,
                # 決定係数
                rsquared=model.score(X, y)))
    ax.legend()
    
    plt.show()
    
    
  5. 「▶」ボタンクリック

予測モデル関数f(x)が構築されたことが確認できる。

関連動画

関連静画

関連商品

関連コミュニティ

関連項目

この記事を編集する

掲示板

掲示板に書き込みがありません。

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2024/11/12(火) 02:00

ほめられた記事

最終更新:2024/11/12(火) 02:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP