Python、R、SAS、SPSS など、人工知能のモデリングと予測に使用できるツールは数多くあります。その中でも、Python は、学習しやすく豊富なデータ サイエンス ライブラリがあり、無料であるため、非常に人気があります。オープンソース。しかし、データ モデリング アルゴリズムに慣れていないプログラマーにとって、Python を使用してモデル化することは依然として比較的複雑であり、多くの場合、データをどう処理し、どのアルゴリズムを選択すればよいかが明確ではありません。実際、SPL はデータ分析とデータ モデリングにも適しています. Python よりもシンプルで使いやすく, 計算速度も速いです. インタラクティブなインターフェイスはデータ分析に非常に使いやすいです. 自動データ モデリング機能も提供します.また、一部のデータ処理および統計機能も非常に便利に使用できます。
例として、ユーザー ローンのデフォルト予測データを取り上げ、SPL を使用してデータ モデリング予測を実行してみましょう。
1. 目標を特定し、データを準備する
モデリングと予測とは、過去のデータからパターンを掘り起こし、そのパターンを使用して将来何が起こるかを予測することです。この法則は一般にモデルと呼ばれます。
履歴データは通常、いわゆるワイド テーブルです.たとえば、ユーザー ローンのデフォルト予測の例では、履歴データは次の図のような Excel テーブルです。
まず第一に, ワイドテーブルには予測したいものを含める必要があります, これは通常予測ターゲットと呼ばれます. 上の図の予測ターゲットは、履歴ユーザーのデフォルトの動作です, つまり, 図のy列, はいを意味しますdefault, no はデフォルトなしを意味します。予測対象は、製品の売上高、販売価格などの数値、または製品の品質が優れているか、良いか、適格か、悪いかを予測するなど、予測がどのような予測に属するかを表すこともできます。ターゲットが元のデータに存在し、直接使用できる場合もあれば、ターゲットに手動でラベルを付ける必要がある場合もあります。
ここでは、予測対象に加えて、テーブル内のユーザーの年齢、職業、不動産、ローンの状況など、多くの情報が必要になります。ここでの各列は変数と呼ばれます。貸し手が将来債務不履行に陥るかどうかに関係する、原則 収集できる変数が多ければ多いほど良い。たとえば、顧客が製品を購入するかどうかを予測するには、顧客の行動情報、買い物の好み、製品の機能情報、プロモーションなどを収集できます;自動車保険金請求のリスクを予測するには、ポリシー データ、車両情報、所有者の通行習慣、過去の請求状況など、健康保険を予測する場合は、被保険者の生活習慣、体調、治療に関する情報も必要です;ショッピングモールやスーパーマーケットの売上を予測するには、過去の販売注文が必要です.顧客情報、商品情報、不良品の予測、プロセス パラメータ、環境、原材料、その他のデータを生成する必要があります。つまり、より関連性の高い情報が収集されればされるほど、予測はより適切になります。
通常、データを収集する際には、一定期間の履歴データを傍受して広いテーブルを作成します. たとえば、7 月のユーザーのデフォルト状況を予測したい場合は、1 月から 6 月までのデータを収集してトレーニングし、モデルを構築します. データ収集の時間範囲は固定ではなく、1 年近く、3 か月近くなど、柔軟に運用できます。
用意したワイドテーブルは、Excel形式またはcsv形式で、1行目がタイトル、それ以降の各行が履歴です。
企業が適切に構築された情報システムを持っている場合、IT 部門にこのデータを依頼できます。多くの企業は、この種のデータを BI システムに直接エクスポートできます。
2. ソフトウェアをダウンロードし、モデリング外部ライブラリを構成します
SPL は、Yiming モデリング外部ライブラリと連携して、完全に自動化されたモデリングおよび予測機能を提供できます。
(1) esProc (SPL) と Yiming モデリング ソフトウェアをダウンロードしてインストールします。
esProc ダウンロード:
「http://c.raqsoft.com.cn/article/1595816810031」
Yiming モデリングのダウンロード: "http://www.raqsoft.com.cn/download/download-ymodel"
esProc とモデリング ソフトウェアをインストールし、インストール ディレクトリを記録します (例: C:\Program Files\raqsoft\ymodel)。
(2) SPL で外部ライブラリを構成する
(a) 外部ライブラリに必要なファイルをコピーします
Yiming Modeling のインストール ディレクトリで YModelCil および lib フォルダーを見つけます。
次に、これら 2 つのフォルダーに移動して、外部ライブラリのモデリングに必要なファイルを見つけ、それらを esProc ディレクトリ ([インストール ルート ディレクトリ]\esProc\extlib\YModelCil) にコピーします (C:\Program Files\raqsoft\esProc\ など)。 extlib \YModelCli.
外部ライブラリをモデル化するために必要なファイルは次のとおりです。
1>Yiming モデリング ディレクトリの YModelCil には、次の jar と xml が含まれています。
ant-1.8.2.jar
commons-beanutils.jar
commons-lang-2.6.jar
ezmorph-1.0.2.jar
json-lib-1.1-jdk13.jar
raq-ymodel-cli-2.10.jar
userconfig.xml
2> Yiming モデリングの lib には、次の jar が含まれています。
commons-io-2.4.jar
esproc-ext-20211104.jar
fastjson-1.2.58.jar
gson-2.8.0.jar
jackson-annotations-2.9.6.jar
jackson-core-2.9.6.jar
jackson- databind- 2.9.6.jar
jackson-databind-2.9.6-sources.jar
jackson-dataformat-msgpack-0.8.14.jar
mining.jar
msgpack-0.6.12.jar
msgpack-core-0.8.16.jar
(b) userconfig.xml ファイルのパラメーターを設定する
esProc\extlib\YModelCil ファイルの userconfig.xml ファイルにパラメーターを設定します。
名前 | パラメータ 説明 |
sAppホーム | Yiming Modeling のインストールディレクトリ |
sPythonホーム | Yiming モデリング ディレクトリの Python パス Windows: raqsoft\ymodel\Python37 Linux: raqsoft/ymodel/Python37/bin/python3.7 |
iPythonServerPort | Python サービス ネットワーク ポート |
iPythonProcessNumber | Python プロセスの数 |
bAutoDecideImpute | ギャップを賢く埋めるかどうか |
iResampleMultiple | リサンプリング数 |
The parameters that must be configured is sAppHome and sPythonHome. 他のパラメーターはデフォルト値を使用することができ、変更する必要があります。たとえば、次のようにパラメータを設定できます.太字の部分は、独自のインストール パスに従って設定する必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<Config Version="1">
<Options>
<Option Name="sAppHome" Value="C:\Program Files\raqsoft\ymodel"/>
<Option Name="sPythonHome" Value="C:\Program Files\raqsoft\ymodel\Python37\python.exe"/>
<Option Name="iPythonServerPort" Value="8510"/>
<Option Name="iPythonProcessNumber" Value="2"/>
<Option Name="bAutoDecideImpute" Value="true"/>
<Option Name="iResampleMultiple" Value="150"/>
</Options>
</Config>
実際、Yiming モデリングも Python に基づいて記述されていることがわかりますが、Python アルゴリズムをカプセル化した後は、プログラマーはアルゴリズムの数学的原理と操作の詳細を理解する必要はありません。
(c) SPL 環境の構成
1>. 外部ライブラリの構成
SPL を開き、オプション メニューで、外部ライブラリの選択で YModelCli をチェックして有効にします。外部ライブラリのパスは、手順 (1) の esProc YModelCli のインストール パスです。
GUI のないサーバーで、esProc インストール ディレクトリの esProc\config\raqsoftConfig.xml ファイルに移動して、外部ライブラリのパスと名前を設定します。
<extLibsPath>
外部ライブラリ パス
<importLibs>
外部ライブラリ名 (複数)
2>. 糸数設定
同時予測がある場合は、SPL の「最大並列数」、つまりスレッド数も設定する必要があります。ニーズと機械の状態に応じて、何人のユーザーを設定できますか。
GUI を使用せずにサーバー上で構成するには、esProc のインストール ディレクトリにある esProc\config\raqsoftConfig.xml ファイルに移動します。
<parallelNum>
最大並列数
この時点で、環境構成は完了です。
3. モデリングと予測
(1) データ読み込み
SPL は、モデリング用に csv、Excel、またはデータベースのデータをサポートできます. ここでは例として csv を取り上げますが、他のデータ ソースも同様です.
次のようなローンのデフォルト データ テーブルが与えられた場合、新しいユーザーがデフォルトするかどうかを予測するにはモデリングが必要です。
ファイルの名前は bank-full.csv です。
あ | |
1 | =file("bank-full.csv").import@tc() |
2 | =ym_env() |
3 | =ym_model(A2,A1) |
A1 モデリングデータのインポート、オーダテーブルへの読み込み
A2 は環境を初期化します. A2 を実行すると、データと結果ファイルを保存するために、Yiming Modeling のインストール ディレクトリの下にストア ディレクトリとサブディレクトリが生成されます。
A3 モデリング ファイルを読み込み、md オブジェクトを生成する
(2) 対象変数の設定と変数の統計
データがロードされたら、ターゲット変数を設定します
あ | |
… | … |
4 | =ym_target(A3,"y") |
5 | =ym_statistics(A3,"年齢") |
6 | =A1.fname().(ym_statistics(A3,~)) |
A4 は、フィールド「y」をターゲット変数として設定することを意味し、ターゲット変数はバイナリ変数または数値変数にすることができます。
A5 戻り値に「年齢」などの変数の統計指標を表示すると、欠損率、最大値と最小値、外れ値、データ分布図などのパラメータを確認できます。
A6 ループ変数名 すべてのフィールドの統計を表示し、すべてのフィールドを含む統計の二次シーケンスを返します。
(3) モデルの構築とモデルの性能
あ | |
… | … |
7 | =ym_build_model(A3) |
8 | =ym_present(A7) |
9 | =ym_performance(A7) |
10 | = ym_importance (A7) .sort @ z (重要度) |
A7 はモデリング関数を使用してモデルを構築します. 実行後, 完全に自動化されたデータの前処理とモデリング プロセスがバックグラウンドで実行されます. このプロセスには時間がかかります.時間の長さはデータの量によって異なります. 結果は pd モデル オブジェクトを返します。
モデルが構築された後、pd モデル オブジェクトを呼び出して、モデル情報、モデルの品質、および重要性を表示できます。
A8 はモデルの AUC 値とパラメータを返します
A9 は、AUC、ROC、リフトなどのさまざまなモデル メトリクスとグラフを返します…
たとえば、A9 の 6 番目のレコードの値をクリックしてから、右上隅の [グラフィック ビュー] アイコンをクリックし、値フィールドで [リフト] を選択して、リフト カーブを表示します。
A10 は、ターゲット変数に対する各変数の影響を、重要度の高い順に返します。値が大きいほど、ターゲット変数への影響が大きくなります。降順でソートすると、より直感的に分析できます。
(4) モデルを保存する
あ | |
… | … |
11 | =ym_save_pcf(A7,"bankfull.pcf") |
12 | =ym_json(A7) |
13 | >ym_close(A2) |
A11 モデルを「bankfull.pcf」として保存します。デフォルトの保存パスは [sAppHome]/store/predict です。
A12 は、モデル情報を json 文字列として返します。json コンテンツの詳細な説明については、オンライン ドキュメント「json パラメータの説明」を参照してください。
A13 環境を閉じて、リソースを解放してください。
(5) 予測
予測の前に、pcf モデル ファイルと予測データセットが必要です
あ | |
1 | =ym_env() |
2 | =ym_load_pcf("bankfull.pcf") |
3 | =file("bank-full2.csv").import@tc() |
4 | =ym_predict(A2,A3) |
5 | =ym_result(A3) |
6 | =file("bank-full_result.csv").export@tc(A4) |
7 | >ym_close(A1) |
A1 環境を初期化する
A2 pcf モデル ファイルをインポートして、pd モデル オブジェクトを生成します。
A3 予測データ セットをインポートし、次数テーブルを読み取る
A4 順序データで予測を実行します。シーケンステーブルの他にカーソルやcsvファイル、mtxファイルにも対応例えばA4はym_predict(A2, "bankfull2.csv")のように直接書くことも可能
A5 予測結果を取得する
A6 は予測結果を導き出します。この場合、予測結果はユーザーの不履行の確率です。
A7 環境を閉じてリソースを解放する
4.統合コール
SPL は、上位層のアプリケーションから統合して呼び出すこともできます.たとえば、SPL は Java アプリケーションに埋め込むことができます.詳細については、次を参照してください: http://c.raqsoft.com.cn/article/1615765346560
要約する
Yiming Modeling で SPL を使用してデータのモデリングと予測を実現するのは非常に簡単です. プログラマーは難解な数学的原理を理解する必要はありません. トレーニング データを準備する限り, いくつかの簡単な手順でデータ モデリング タスクを完了することができます. また、この機能をアプリケーションに簡単に埋め込むことができるため、高度な AI はもはや一握りのデータ サイエンティストだけのものではありません。
SPL本来就超强的数据处理能力,能更方便地完成人工智能算法之前的数据准备工作,同时也提供了丰富的数学函数: SPL Math 例程,有些数学基础想自己实现建模过程的同学也可以进一步研究。