回帰のユースケース・シナリオ
ある不動産業者が、データ・サイエンティストであるあなたに、ボストンの住宅価格を評価するための支援を求めています。エージェントは、ターゲットを絞ったサービスをクライアントに提供するために、この情報を毎日必要とします。回帰の一般化線形モデル・アルゴリズムを使用して、ボストン地域の持ち家の中央値を推定します。
関連コンテンツ
トピック | リンク |
---|---|
OML4SQL GitHubの例 | 回帰 - GLM |
CREATE_MODEL2 プロシージャ
|
CREATE_MODEL2プロシージャ |
一般的なモデル設定 | DBMS_DATA_MINING - モデル設定 |
一般化線形モデルの設定 | DBMS_DATA_MINING - アルゴリズムの設定: 一般化線形モデル |
データ・ディクショナリ設定 | Oracle Machine Learningのデータ・ディクショナリ・ビュー |
一般化線形モデル - モデル・ディテール・ビュー | 一般化線形モデルのモデル・ディテール・ビュー |
回帰について | 回帰とは |
一般化線形モデル(GLM)について | 一般化線形モデルとは |
OML4SQLユースケースの探求を開始する前に、次の用意ができていることを確認します。
- データ・セットhttps://github.com/scikit-learn/scikit-learn/blob/master/sklearn/datasets/data/boston_house_prices.csvからデータ・セットをダウンロードします。
ノート:
このデータ・セットは、説明の目的でのみ使用されます。 - データベース 次のオプションからデータベースを選択または作成します:
- 無償のクラウド・アカウントを取得します。https://cloud.oracle.com/databaseにアクセスし、「Oracle Database Cloud Service (DBCS)」または「Oracle Autonomous Database」を選択します。アカウントを作成してインスタンスを作成します。Autonomous Databaseクイック・スタート・ワークショップを参照してください。
- Oracle Database (オンプレミス)の最新バージョンをダウンロードします。
- 機械学習ツールデータベースの選択内容に応じて、次のいずれかを実行します。
- Oracle Autonomous Database用のOML Notebooksを使用します。
- オンプレミス・データベースまたはDBCSに接続されたOracle SQL Developerをインストールして使用します。SQL Developerのインストールおよび起動を参照してください。
- その他の要件
データ・マイニング権限(ADWに対して自動的に設定されます)。Oracle Machine Learning for SQLのためのシステム権限を参照してください。
データのロード
データ・セットとその属性を詳細に調べます。データをデータベースにロードします。
データの調査
データ・セットには13個の属性があります。これは、元のデータ・セットから属性を1つ除外してカスタマイズされたデータ・セットです。次の表に、データ属性に関する情報を示します。
属性名 | 情報 |
---|---|
CRIM | 町ごとの1人当たりの犯罪率 |
ZN | 25,000平方フィート超の区画化された宅地の比率。 |
INDUS | 町ごとの非小売業の土地の比率 |
CHAS | チャールズ川のダミー変数(地域が川と境界を接する場合は1、それ以外の場合は0) |
NOX | 窒素酸化物濃度(1000万分の1) |
RM | 住居当たりの平均部屋数 |
AGE | 1940年より前に建設された所有者が居住しているユニットの比率 |
DIS | ボストンの5つの雇用センターへの加重距離 |
RAD | 放射状の幹線道路へのアクセスのしやすさの指標 |
TAX | 10,000ドル当たりの全額固定資産税率 |
PTRATIO | 町ごとの1教師当たりの生徒数 |
LSTAT | %低い人口の状況 |
MEDV | 1,000ドル台の持ち家の中央値 |
関連トピック
列の追加
このデータ・セットでは、データ・セット内の各レコードを一意に識別する行識別子がありません。新しいcase_id
列を追加します。case_id
は、再現可能な結果を支援し、個々の顧客のスコアをスコアリング・データ表などの他のデータと結合します。
case_id
で識別されます。ここでのHIDがcase_id
です。
HID列を追加するには:
- .csvファイルをスプレッドシートで開きます。
- 506および13の最初の行を削除します。これで、列名を持つ行が最初の行になります。
- データ・セットの左側に列を追加します。
- 列名としてHIDと入力します。
- HID列で、最初の行を識別する最初の値として1を入力します。
- スプレッドシート・セルに「+」アイコンが表示されます。「+」アイコンをレコードの最後まで右下にドラッグします。
- 右クリックして、「連続データ」を選択します。
- 列Bをデータ・セットから削除するには、列の上部を右クリックしてBというタイトルの列全体を選択し、「削除」を選択します。
データのインポート
データベースにデータをインポートするには、様々な方法があります。ここでは2つの方法を説明します。1つはSQL Developer(オンプレミス用)を使用し、もう1つはオブジェクト・ストレージ(クラウド用)を使用します。
データベース(オンプレミス)へのデータのインポート
データ・セットにアクセスするには、SQL Developerを使用して、変更したデータ・セットをデータベースにインポートします。
- システムでSQL Developerを起動します。
- 変更後の.csvファイルをインポートします。表を参照してください。
- House ID (HID)を主キーとして設定します。この列は、各レコードを識別し、特定のレコードに関する情報の取得に役立ちます。HID列は、表またはビューを結合する場合に便利です。主キー制約を参照してください。
クラウドへのデータのインポート
クラウド・アカウントを使用している場合、データのインポート方法の1つとしてオブジェクト・ストレージを使用します。データ・セットをオブジェクト・ストレージにアップロードします。オブジェクト・ストレージURIは別のプロシージャで使用されます。
Oracle Databaseツールやオラクル社またはサードパーティ製のデータ統合ツールを使用して、Oracle Autonomous Database (Autonomous Data Warehouse [ADW]またはAutonomous Transaction Processing [ATP])にデータをロードできます。次のようにデータをロードできます。
- クライアント・コンピュータのローカル・ファイルから、または
- クラウドベースのオブジェクト・ストアに格納されているファイルから
データ・ファイルをオブジェクト・ストレージ・バケットにアップロードするステップに従います。
- クラウド・アカウントにログインします。
- 左側のハンバーガ・メニューをクリックし、メニューから「ストレージ」を選択します。
- 「オブジェクト・ストレージおよびアーカイブ・ストレージ」オプションから「バケット」を選択します。
- データをアップロードするコンパートメントを選択します。
- 「バケットの作成」をクリックします。
- バケットの名前を入力します。たとえば、Bucket1です。残りのフィールドはデフォルトのままにします。
- 「作成」をクリックします。
- 作成したバケットをクリックします。下にスクロールし、「オブジェクト」の下の「アップロード」をクリックします。
- 「オブジェクト名接頭辞」フィールドは空白のままにします。「ファイルを選択」をクリックして、アップロードするデータ・ファイルに移動するか、データ・ファイルをドラッグ・アンド・ドロップします。このユースケースでは、変更された.csvファイルを選択します。
- 「アップロード」をクリックします。データ・ファイルが「オブジェクト」の下に表示されます。
- データ・ファイルの右側にある省略記号をクリックしてメニューを表示します。「オブジェクト詳細の表示」をクリックします。
- URL PATH (URI)をテキスト・ファイルにコピーします。このURIは、
DBMS_CLOUD.COPY_DATA
プロシージャで使用されます。
認証トークンの作成
認証トークンは、DBMS_CLOUD.CREATE_CREDENTIAL
プロシージャで必要です。クラウド・アカウントで認証トークンを生成できます。
- ADW Cloudアカウントにログインします。
- コンソールの右上隅の人間の形をしたアイコンの上にマウス・カーソルを置き、ドロップダウン・メニューから「ユーザー設定」をクリックします。
- コンソール左側にある「リソース」で認証トークンをクリックします。
- 「トークンの生成」をクリックします。ポップアップ・ダイアログが表示されます。
- 説明を入力します(オプション)。
- 「トークンの生成」をクリックします。
- 生成されたトークンをテキスト・ファイルにコピーします。トークンは表示されなくなります。
- 「閉じる」をクリックします。
表の作成
BOSTON_HOUSING
という表を作成します。この表は、DBMS_CLOUD.COPY_DATA
プロシージャでデータ・セットにアクセスするために使用されます。
作成したノートブックの新しい部分に次のコードを入力し、ノートブックを実行します。
%sql
CREATE table boston_housing
(
HID NUMBER NOT NULL,
CRIM NUMBER,
ZN NUMBER,
INDUS NUMBER,
CHAS VARCHAR2(32),
NOX NUMBER,
RM NUMBER,
AGE NUMBER,
DIS NUMBER,
RAD NUMBER,
TAX NUMBER,
PTRATIO NUMBER,
LSTAT NUMBER,
MEDV NUMBER
);
表へのデータのロード
オブジェクト・ストレージに格納されているデータ・セットをBOSTON_HOUSING
表にロードします。
%script
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name =>'BOSTON_HOUSING',
credential_name =>'CRED',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/filename.csv',
format => json_object('type' value 'CSV', 'skipheaders' value 1)
);
END;
table_name
: ターゲット表の名前です。credential_name
: すでに作成した資格証明の名前です。file_uri_list
: ロードするソース・ファイルのカンマ区切りリストです。format
: ファイル・タイプがテキスト、ORC、ParquetまたはAvroのいずれであるかなど、ソース・ファイルの形式を記述するために指定できるオプションを定義します。
この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameは前に作成したストレージ・バケット名(Bucket1など)で、filename.csvはストレージ・バケットにアップロードした変更済.csvファイル名です。
関連トピック
データの探索
データを調べ、データの品質を理解して評価します。このステージでは、データを評価してデータ内のデータ型およびノイズを識別します。欠損値および数値外れ値を探します。
次のステップは、データの探索的分析に役立ちます。
関連トピック
モデルの構築
トレーニング・データ・セットを使用してモデルを構築します。DBMS_DATA_MINING.CREATE_MODEL2
プロシージャを使用してモデルを構築し、モデル設定を指定します。
アルゴリズムの選択
モデルを構築する前に、適切なアルゴリズムを選択します。次のアルゴリズムのいずれかを選択して、回帰の問題を解決できます。- Extreme Gradient Boosting
- 一般化線形モデル
- ニューラル・ネットワーク
- サポート・ベクター・マシン
データ・セットを理解する場合は、常に単純で簡単なベースライン・モデルから始めます。一般化線形モデル・アルゴリズムは、特徴とターゲット間の線形関係に適合するので単純で簡単に解釈できるため、適切な選択です。線形モデルの結果から新しいデータ・セットの最初の理解を得ることができます。
次のステップでは、データを分割し、選択したアルゴリズムを使用してモデルを構築する方法について説明します。
評価
診断メトリックを表示し、品質チェックを実行してモデルを評価します。
ディクショナリ・ビューおよびモデル・ディテール・ビューを問い合せれば、モデルのパフォーマンスを測定するのに十分な場合もあります。ただし、平均絶対誤差(MAE)、二乗平均平方根誤差(RMSE)、混同行列、リフト統計、コスト行列などのテスト・メトリックを計算して、モデルを評価できます。相関ルールの場合、様々なルールを調査して、それらによって項目の依存関係(前件の項目セットが後件を暗に示す)または項目間の想定外の関係について新しいインサイトが明らかになるかどうかを確認できます。
ディクショナリ・ビューおよびモデル・ビュー
モデルおよびビュー・モデル設定に関する情報を取得するには、データ・ディクショナリ・ビューおよびモデル・ディテール・ビューを問い合せることができます。モデル・ディテール・ビューの特定のビューには、モデルの評価に役立つモデル統計が表示されます。
次の表に、Oracle Machine Learningのデータ・ディクショナリ・ビューを示します。ビューのデータベース管理者(DBA)およびUSERバージョンも使用可能です。
ビュー名 | 説明 |
---|---|
ALL_MINING_MODELS | アクセス可能なすべての機械学習モデルに関する情報を示します |
ALL_MINING_MODEL_ATTRIBUTES | アクセス可能なすべての機械学習モデルの属性に関する情報を示します |
ALL_MINING_MODEL_SETTINGS | アクセス可能なすべての機械学習モデルの構成設定に関する情報を示します |
ALL_MINING_MODEL_VIEWS | アクセス可能なすべての機械学習モデルのモデル・ビューに関する情報を示します |
ALL_MINING_MODEL_XFORMS | アクセス可能なすべての機械学習モデルに埋め込まれたユーザー指定の変換を示します。 |
モデル・ディテール・ビューはアルゴリズムに固有です。モデル・ディテール・ビューを表示することで、作成したモデルに関する詳細なインサイトを取得できます。モデル・ディテール・ビューの名前はDM$xxで始まります(xxはビュー接頭辞に相当します)。「モデル・ディテール・ビュー」を参照してください。
モデルのテスト
このユースケースでは、既知のターゲット値が含まれるテスト・データについて二乗平均平方根誤差(RMSE)および平均絶対誤差(MAE)を計算し、予測値を既知の値と比較することによって回帰モデルを評価します。
このユースケースでは、二乗平均平方根誤差(RMSE)および平均絶対誤差(MAE)の値を計算します。RMSEとMAEは、一般的な回帰統計です。RMSEは、予測モデルの見積り機能です。スコアは、各ケースの残差を平均して、モデルの誤差の単一インジケータを生成します。平均絶対誤差は、予測全体が実際の値にどの程度近いかを理解するのに役立ちます。スコアが小さいほど、予測が正確だったことを意味します。
次のステップでは、モデルの誤差メトリックを計算します。