
12-1a ChatGPTを用いた予測モデルの基本作成プロセス:回帰問題の概要とデータ準備
こちらにて線形の回帰分析について説明してきましたが、ここから3セクションにわたり機械学習における線形回帰以外の回帰モデルと、それらのモデルの評価方法について説明します。機械学習では、単純な線形モデルに限らず、非線形なパターンや複雑なデータ構造を扱う回帰モデルが数多く存在します。これにより、より精度の高い予測や分析が可能になります。
回帰問題に関する一連のセクションを読むことで、ChatGPT(ADA)を使って手元のデータを以下の手順で処理し、予測モデルを作成できるようになります。ここではそのうちの、1、2のステップにあたるデータ準備について説明します。
データを整理し、予測に使うための形に整える
学習データとテストデータを作成する
データを使ってモデルを訓練する
モデルの精度を判断する
新しいデータで予測を行う
回帰問題とは
回帰問題とは、数値を予測するための方法です。たとえば、売上予測や価格予測、顧客満足度の予測など、具体的な数値を予測したい場合に使われます。
たとえば、「マーケティングキャンペーンで得られる売上を予測する」といった場合が回帰問題です。このとき、過去のキャンペーンデータを使い、どの条件でどれくらいの売上が予測できるかを計算します。
回帰問題を選択できる条件
目的変数が連続的な数値である
回帰問題は、予測したい値(目的変数)が連続的な数値である場合に適しています。これは、回帰問題に特有の条件です。たとえば、売上、価格、重量、顧客満足度のスコアなどが該当します。
予測に数値が必要となるビジネスシナリオである
予測が数値を必要とする場合、回帰問題が適しています。たとえば、次年度の売上や製品の価格など、数値予測が重要なケースです。これも回帰問題に特有の条件です。
例1: マーケティングキャンペーンのターゲティング
ビジネス背景: ある企業が新しいマーケティングキャンペーンを計画しており、顧客の中で誰がキャンペーンに反応しやすいかを予測したい。
予測対象: キャンペーンに反応した場合の予測売上を数値として予測する。
ビジネス活用: 予測された売上をもとに、キャンペーンの予算配分を最適化し、より高い売上が期待できる顧客層にリソースを集中させる。
例2: 顧客離脱の予測
ビジネス背景: サブスクリプション型ビジネスを運営する企業が、どの顧客が契約を更新しないかを予測し、適切な対策を講じたいと考えている。
予測対象: 顧客が残り何ヶ月で離脱するかを予測する。
ビジネス活用: 離脱までの予測期間に応じて、適切なタイミングでリテンション施策を実施し、離脱率を低減する。
予測モデルの作成方法
回帰問題の予測モデルを作る際は、まず過去のデータをもとに、実際の結果(売上)と予測値の誤差を最小限にするようにパターンを学習させます。この「誤差」をできるだけ小さくすることが、予測精度を高める鍵です。
以降のパートから、実際に回帰モデルを作成する方法を説明していきます。
1. データを整理し、予測に使うための形に整える
目的変数は、予測モデルが予測しようとする結果となります。たとえば、「売上」や「顧客満足度のスコア」が目的変数になります。
説明変数は、予測モデルが目的変数を予測するために使うデータとなります。たとえば、「広告費用」や「店舗の立地」が説明変数になります。
1-1. 目的変数の変換
目的変数を適切に準備することは、正確な予測をするために非常に重要です。
目的変数の列は欠損値があるとエラーの原因になりますので、必ずすべての行に値が入っている状態にしてください。
データのスケール: 目的変数が非常に大きな値や非常に小さな値を取る場合、データの正規化や標準化を行うことで予測モデルの学習を効率化します。
欠損値の処理: 目的変数にデータが欠けていると、予測モデルはうまく学習できません。欠損値がある場合は、その行を除外するか、他のデータを使って埋める(補完する)必要があります。
外れ値の確認: 目的変数に非常に大きな値や小さな値が含まれていると、予測モデルが正確に予測できなくなる可能性があります。こうしたデータが正しいかを確認し、必要であれば除外するか、適切な値に変換します。
1-2. 説明変数の変換
説明変数も適切に準備することが必要です。特に、説明変数が数値データかカテゴリデータかで処理方法が異なります。
定量データ: 数値データの場合は、目的変数と同じように、正規化や標準化を行います。
定性データ: カテゴリデータ(たとえば「家電」や「衣料品」など)は、そのままでは予測モデルが理解できません。そこで、ワンホットエンコーディングという方法で、各カテゴリを0と1のフラグに変換します。
カテゴリの数だけ0/1のフラグに変換した列を作成します。
例: 「家電」, 「衣料品」, 「食品」の3クラスがある場合、3つの新しい変数を作成し、「家電」なら(1, 0, 0), 「衣料品」なら(0, 1, 0)というように変換します。
目的変数と説明変数の変換方法
以下は住宅の販売価格のデータです。面積やバスルーム数などのスペック情報を含んでいます。このデータで住宅のスペックから販売価格を予測し、利益が大きい物件を仕入れたいと考えています。
| 価格(ドル) | 面積 | 寝室数 | バスルーム数 | 階数 | 主要道路 | 客室 | 地下室 | 温水暖房 | エアコン | 駐車場 | 優先地域 | 家具の状態 |
|------------|-------|--------|--------------|------|----------|------|--------|----------|----------|---------|----------|--------------|
| 13,300,000 | 7420 | 4 | 2 | 3 | yes | no | no | no | yes | 2 | yes | 家具あり |
| 12,250,000 | 8960 | 4 | 4 | 4 | yes | no | no | no | yes | 3 | no | 家具あり |
| 12,250,000 | 9960 | 3 | 2 | 2 | yes | no | yes | no | no | 2 | yes | 一部家具あり |
| 12,215,000 | 7500 | 4 | 2 | 2 | yes | no | yes | no | yes | 3 | yes | 家具あり |
| 11,410,000 | 7420 | 4 | 1 | 2 | yes | yes | yes | no | yes | 2 | no | 家具あり |
※サンプルデータとプロンプトを含む実習は、別サイトで公開している講座コンテンツ(無料)でお読みいただけます(閲覧方法はページの一番下に記載)。
2. 学習データ、テストデータを作成する
機械学習では、データを使って予測モデルを作り、その予測モデルがどれだけ正確に予測できるかを確認するために、データを2つに分ける必要があります。この分け方を「学習データ」と「テストデータ」と呼びます。
学習データ(Training Data):
予測モデルを訓練するために使用するデータです。このデータを使ってモデルがパターンを学習し、将来の予測に必要な関数や規則を見つけ出します。通常、全体のデータの70%から80%を学習データとして使用します。テストデータ(Test Data):
予測モデルの性能を評価するためのデータです。このデータは学習に使用せず、予測モデルがどれだけ正確に予測できるかを確認するために使います。
通常、全体のデータの20%から30%程度をテストデータとして使用します。
データの分割手法
ランダム分割:
データをランダムに選んで学習データとテストデータに分けます。特に事情がない場合、この方法がもっともよく使われます。データの偏りを避けるために、ランダムに分けることで、予測モデルが全体のパターンを学習しやすくなります。シャッフル:
データが特定の順序に並んでいる場合、たとえば時間順やなんらかの規則に従って並んでいる場合は、シャッフルしたうえでサンプリングします。これにより、データの順序による偏りが避けられます。層別抽出:
カテゴリデータ(たとえば、顧客が「高価な商品を購入したかどうか」などの2択データ)が含まれている場合、それぞれのカテゴリの割合を維持しながらデータを分割します。これにより、学習データとテストデータの両方で、カテゴリの分布が偏らないようにすることができます。
ファイル分割方法
こちらも、プロンプトを含む実習は、別サイトで公開している講座コンテンツ(無料)でお読みいただけます。
閲覧方法
以降のセクションのプロンプトを含む全体のコンテンツは、LINE公式アカウントに登録していただいた方に無料で公開しています。こちらから友だち登録すると、最初のメッセージでURLをお知らせします。

URLにアクセスすると、IDとパスワードを求められますので、アカウントのメニュー右側にある「パスワードリクエスト」をタップし、表示されたものを入力してください。

パスワードの更新時はこのアカウントからお知らせします。
「ChatGPTとはじめるデータ分析」の紹介
実は今、ChatGPTを使えば、高度な専門知識がなくてもデータ分析が簡単にできる時代です。
別サイトで公開している完全無料の講座コンテンツでは、煩わしいプログラムや複雑な計算は一切不要。あなたの手元にあるデータを、ChatGPTの力を使って瞬時に分析し、ビジネスに役立つ洞察を引き出す方法をお教えします。
必要な分析用語や基礎知識もカバーしているので、初めての方でも安心。今こそデータ分析スキルを身につけて、売上予測、顧客動向の把握、カスタマーエクスペリエンスの改善に役立てませんか?
(具体的なカリキュラムはこちら)