SlideShare a Scribd company logo
1 of 37
2020年4月2日
日本オラクル株式会社
園田憲一
製品技術概要
Oracle Data Science Platform
以下の事項は、弊社の一般的な製品の方向性に関する概要を解釈するものです。また、情報提供を唯一
の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルや
コード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判
断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により
決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商
標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
以下の事項は、弊社の一般的な製品の方向性に関する概要を解釈するものです。また、情報提供を唯一
の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルや
コード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判
断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により
決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商
標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
2 Copyright © 2020 Oracle and/or its affiliates.
3 Copyright © 2020 Oracle and/or its affiliates.
• 分析プロジェクトにおける共同ワークスペー
スを提供するサービス
• データサイエンティストチームだけでなく、
異なる部門の専門家がチームとして、分析
プロジェクトを推進
• 複数のデータサイエンティスト間のノウハ
ウの共有
- ソースコード
- トレーニングデータ
- 予測モデル
• 機械学習(ML)のOSSテクノロジー、ライブラ
リ、パッケージ、Oracle Accelerated Data
Science(ADS)をプリインストール済み
• 他社MLライブラリでトレーニング済のモデル
をインポート可能
• PaaSとしては無償、IaaSのみの課金
Overview
4 Copyright © 2020 Oracle and/or its affiliates.
• プロジェクト
• 全てのリソースを保持する共同ワークスペース
• Notebookセッション
• モデルを構築、学習するためのコーディング環境
• Jupyter Notebook、MLライブラリ群がプリインス
トールされたComputeインスタンス
• 作成時にCompartment、VCN、Subnet、Compute
シェイプ、Block Volumeの容量を指定
• MLライブラリ
• Keras
• scikit-learn
• XGBoost
• Oracle Accelerated Data Science(ADS)
• モデルカタログ
• 構築したモデルを登録、共有するストレージ領域
コンポーネント
Accelerated Data Science
scikit-learn
MLライブラリ
Jupyter Notebook
Notebootセッション
Compute Block Storage
プロジェクト
モデルカタログ
モデル
モデル
分析チーム
インフラ担当 アプリ開発担当データサイエンティスト ビジネスユーザー
ノウハウ、リソースの共有共同開発
5 Copyright © 2020 Oracle and/or its affiliates.
③Notebookにログイン後、
Pythonでコーディング開始
②プロジェクト内にNotebook
セッションの作成
①プロジェクトの作成
開発までのステップ
OCIコンソール OCIコンソール Jupyter Notebook
6 Copyright © 2020 Oracle and/or its affiliates.
• Data Science Platformの一部として機能する
Pythonライブラリ
• 機械学習のライフサイクル全てのフェーズで
使いやすくシンプルなAPI
• Oracle AutoML
• ワークフロー内の処理の自動化
• 処理時間の削減
• モデル精度の向上
Oracle Accelerated Data Science(ADS)
機械学習のワークフロー
AutoML
Confidential – © 2020 Oracle Internal
⑥モデルの
解釈
②データの
変換
①データの
ロード
⑤モデルの
評価
③データの
可視化
④モデルの
学習
Accelerated
data
Science
7 Copyright © 2020 Oracle and/or its affiliates.
• ADSによる容易な接続とデータロード
• DatasetFactoryクラスの利用
• 対応データストア
• ローカルファイルシステム
• OCI Object Storage, Amazon S3, Google Cloud Storage, Azure Blob
• Oracle DB, ADW, MongoDB, HDFS, NoSQL DB, Elastic Search, etc.
• 対応ファイルフォーマット
• CSV, TSV, Parquet, libsvm, json, Excel, HDF5, SQL, xml, Apache Server Logfile(clf, log), arff
データのロード
分析対象のデータをデータストアから読み込みデータセットを作成するフェーズ
8 Copyright © 2020 Oracle and/or its affiliates.
データロード
サンプルコード
# ローカルファイルシステムからのロード
ds = DatasetFactory.open("/path/to/data.data", format='csv', delimiter=" ")
# OCI Object Storage Serviceからのロード
ds = DatasetFactory.open("oci://<bucket-name>/<file-name>", storage_options = {
"config": "~/.oci/config",
"profile": "DEFAULT_USER"
})
# Amazon S3からのロード
ds = DatasetFactory.open("s3://bucket_name/iris.csv", storage_options = {
'key': 'aws key',
'secret': 'aws secret,
'blocksize': 1000000,
'client_kwargs': {
"endpoint_url": "https://s3-us-west-1.amazonaws.com"
}
})
# ADWからのロード
uri = f'oracle+cx_oracle://{os.environ["ADW_USER"]}:{os.environ["ADW_PASSWORD"]}@{os.environ["ADW_SID"]}’
ds = DatasetFactory.open(uri, format="sql", table=table, index_col=index_col, target='label')
9 Copyright © 2020 Oracle and/or its affiliates.
• 生データをRDBのような「完全に正規化された表形式のデータ」に成形
• 機械学習に特有のデータ成形(特徴量エンジニアリング)
データ変換
データセットを機械学習に使える形に成形するフェーズ
• テキストデータの単語分割、頻度カウント
• 文字列の”エンコード”
• 低頻度語や異常値の除外
• 欠損値データの処理
• モデル生成に関係しないデータの削除
• モデル生成に含めるべきでないデータの削除
• etc.
特徴量エンジニアリングの一般的な処理例
10 Copyright © 2020 Oracle and/or its affiliates.
• 行の操作
• 削除、追加、フィルタ、重複行の削除
• 列の操作
• 削除、追加、フィルタ、列名の変更、データ型の変換、ノーマライズ
• String列に対する操作
• クラスラベルのカウント、ラベルの長さの変更(文字数の変更)、大文字・小文字の変換
• データセットの操作
• Nullのある列の検出、Nullの変更、結合
データ変換
行、列、データセットの操作
11 Copyright © 2020 Oracle and/or its affiliates.
1. 定数、主キー列の削除
2. 欠損値の補完、削除
3. 予測精度を下げる可能性のある特徴量の削除
4. データセットの均衡化
データ変換
ADSによる特徴量エンジニアリングの自動化
# 推奨の自動処理内容を確認しながらデータセットに反映するケース
ds.get_recommendations()
transformed_ds = ds.get_transformed_dataset()
# 推奨の自動処理内容を確認せずにデータセットに反映するケース
transformed_ds = ds.auto_transform()
ADSのAutoMLライブラリにより、一部特徴量エンジニアリングの自動化が可能
12 Copyright © 2020 Oracle and/or its affiliates.
データ変換
ADSによる特徴量エンジニアリングの自動化
定数
主キー列
変換前のデータセット(行数, 列数)
変換後のデータセット(行数, 列数)
“Drop”を選択
get_recommendations()による定数、主キー列の検知
13 Copyright © 2020 Oracle and/or its affiliates.
データ変換
欠損値の補完、削除
変換前のデータセット(行数, 列数)
変換後のデータセット(行数, 列数)
欠損値の
ある列
“Drop”を選択
get_recommendations()による欠損値の検知
14 Copyright © 2020 Oracle and/or its affiliates.
データ変換
予測精度を下げる可能性のある特徴量の削除
変換前のデータセット(行数, 列数)
変換後のデータセット(行数, 列数)
欠損値の
ある列
“Drop”を選択
get_recommendations()による多重共線性の可能性のある特徴量の検知
15 Copyright © 2020 Oracle and/or its affiliates.
データ変換
データセットの均衡化(アップサンプリング、ダウンサンプリング)
変換後のデータセット(行数, 列数)
“Up-sample”を選択 “Down-sample”を選択
変換前のデータセット(行数, 列数)
データに偏り
のある列
get_recommendations()によるデータ不均衡の検知
16 Copyright © 2020 Oracle and/or its affiliates.
• データ列のタイプを自動的に検出し、データをプロットする最適な方法を提供するスマートな可視化
ツールを提供
• 可視化の種類
• 組み込み関数によるデータセットのサマリ、その他チャート
• 可視化API(Seaborn, Matplotlib, GIS)を使ったコーディングによる可視化
データの可視化
データからより多くの洞察を直感的に得るために、データセットを様々なチャートで可視化する
フェーズ
17 Copyright © 2020 Oracle and/or its affiliates.
データの可視化
データセットのサマリ
#データセットをshow_in_notebook()関数に渡す
ds.show_in_notebook()
データセットに関する
列数、行数、特徴タイプ
データセットの特徴量、値の分布
データセットの先頭5行の表示
データセットに関する基本情報の包括的なプレビューを可視化
特徴量の相関マップ
18 Copyright © 2020 Oracle and/or its affiliates.
データの可視化
組み込み関数によるチャート
カウントプロット、バイオリン曲線、ガウスヒートマップ
# カウントプロット
ds.plot("col02").show_in_notebook(figsize=(4,4))
# バイオリンプロット
ds.plot("col02", y="col01").show_in_notebook(figsize=(4,4))
# ガウスヒートマップ
ds.plot("col01", y="col03").show_in_notebook()
19 Copyright © 2020 Oracle and/or its affiliates.
データ可視化
可視化APIを使ったコーディングによる可視化
# Matplotlibでのパイチャートのコーディング例
from numpy.random import randn
df = pd.DataFrame(randn(1000, 4), columns=list('ABCD'))
def ts_plot(df, figsize):
ts = pd.Series(randn(1000), index=pd.date_range('1/1/2000',
periods=1000))
df.set_index(ts)
df = df.cumsum()
plt.figure()
df.plot(figsize=figsize)
plt.legend(loc='best')
ds = DatasetFactory.from_dataframe(df, target='A')
ds.call(ts_plot, figsize=(7,7))
散布図
多次元折れ線チャート
世界地図チャート
パイチャートSeaborn, Matplotlib, GIS
20 Copyright © 2020 Oracle and/or its affiliates.
• ADSの AutoML により合理的な時間内で精度の高いモデルを生成
• データサイエンスのノウハウが必要かつ、時間のかかる作業を自動化
1. 最適なアルゴリズム選択の自動化
2. サンプリングの自動化(アダプティブサンプリング)
3. 最適な特徴量選択の自動化
4. ハイパーパラメータ・チューニングの自動化
モデルの学習
成形済みのデータセットを統計処理にかけ、予測モデルを構築するフェーズ
# 成形済みデータセットをトレーニングデータとテストデータに分割
train, test = transformed_ds.train_test_split(test_size=0.1)
# トレーニングデータを学習しモデルを構築
ml_engine = OracleAutoMLProvider(n_jobs=-1, loglevel=logging.ERROR)
oracle_automl = AutoML(train, provider=ml_engine)
automl_model1, baseline = oracle_automl.train()
アルゴリズムのリスト
• AdaBoostClassifier
• DecisionTreeClassifier
• ExtraTreesClassifier
• KNeighborsClassifier
• LGBMClassifier
• LinearSVC
• LogisticRegression
• RandomForestClassifier
• SVC
• XGBClassifier
21 Copyright © 2020 Oracle and/or its affiliates.
モデルの学習
Oracle AutoMLによる自動化
①最適なアルゴリズム選択の自動化 ②サンプリングの自動化
oracle_automl.visualize_algorithm_selection_trials() oracle_automl.visualize_adaptive_sampling_trials()
22 Copyright © 2020 Oracle and/or its affiliates.
モデルの学習
Oracle AutoMLによる自動化
③最適な特徴量選択の自動化 ④ハイパーパラメータ・チューニングの自動化
oracle_automl.visualize_feature_selection_trials() oracle_automl.visualize_tuning_trials()
23 Copyright © 2020 Oracle and/or its affiliates.
• テストデータを用いた予測結果を解釈可能な標準化された一連のスコアとチャートに変換する
• 評価対象:「バイナリ分類」、「マルチクラス分類」、「回帰」
• 評価手法:ホールドアウト法、クロスバリデーション(汎化性が高い)
モデルの評価
「このモデルは本当に正しいのか?」、「このモデルはどれだけ優れているのか?」を知るフェーズ
TESTTESTTESTTESTTEST TRAIN
ホールドアウト法
学習
モデル生成
評価
TESTTESTTESTTESTTEST TRAIN
TRAIN TEST
TRAIN TRAINTEST
TRAINTEST
TRAINTEST
クロスバリデーション(※1)
1回目
2回目
3回目
4回目
5回目
※1:データをN個に分けて、1回目はそのうち1つをTEST用、残りのN-1個を
TRAIN用として使用。2回目は別の1つをTEST用、残りのN-1個をTRAIN用
として使用・・・をN回繰り返し、各回で測定した精度の平均を取る
24 Copyright © 2020 Oracle and/or its affiliates.
モデルの評価
評価結果のチャート
例)バイナリ分類
• リフトチャート、ゲインチャート
• PR曲線、ROC曲線
• 混合行列
# 評価の実行
bin_evaluator = ADSEvaluator(test, models=[bin_lr_model, bin_rf_model],
training_data=train)
# 評価結果のチャート化
bin_evaluator.show_in_notebook(perfect=True)
25 Copyright © 2020 Oracle
• モデルの解釈とは?
• モデルや予測結果を人間が解釈可能な状態にチャート化すること
• なぜモデルの解釈が必要なのか?
• 予測結果のブラックボックス化を防止
• 開発者がモデルの挙動を理解し、モデルの品質改善やデバッグをより容易にする
• 解釈の種類
• Global Explainer = モデル自体の解釈
- 特徴量重要度(Feature Permutation Importance)
- 個別条件付き期待値(Individual Conditional Expectation(ICE))
- 部分従属プロット(Partial Dependence Plot(PDP))
• Local Explainer = 特定のデータに対してモデルが予測した結果の解釈
モデルの解釈
「どのようなモデルが構築されたのか?」、「なぜそのような予測結果になったのか?」を
知るフェーズ
26 Copyright © 2020 Oracle and/or its affiliates.
構築済モデルにおいて「どの特徴量が予測モデルに強く影響し、どの特徴量は影響しないのか?」を特
定する
モデルの解釈
ADS Global Explainer – Feature Permutation Importance
PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked
1 0 3 Braund, Mr. Owen male 22 1 0 7.25 S
2 1 1 Cumings, Mrs. John female 38 1 0 71.2833 C
3 1 3 Heikkinen, Miss. Laina female 26 0 0 7.925 S
4 1 1
Futrelle, Mrs. Jacques
Heath
female 35 1 0 53.1 S
①既存のモデルの予測精度を計測
PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked
1 0 3 Braund, Mr. Owen Female 22 1 0 7.25 S
2 1 1 Cumings, Mrs. John Male 38 1 0 71.2833 C
3 1 3 Heikkinen, Miss. Laina Male 26 0 0 7.925 S
4 1 1
Futrelle, Mrs. Jacques
Heath
male 35 1 0 53.1 S
②特定の特徴量の値をシャッフルし予測精度を計測
予測精度(baseline_score) 予測精度(shuffled_score)
③baseline_scoreとshuffled_scoreの差が大きい順に特徴量をランキング
baseline_scoreとshuffled_scoreの差
が大きいほど重要な特徴量だと判断
• シャッフルすることで特定の特徴
量を無効状態にし予測精度を計測
• 各特徴量毎に繰り返し予測精度を
繰り返し計測する
既存のモデルの予測精度を計測し、
ベースラインにする
baseline_score - shffuled_score
27 Copyright © 2020 Oracle and/or its affiliates.
# With ADSExplainer, create a global explanation object using
# the MLXGlobalExplainer provider
from ads.explanations.mlx_global_explainer import MLXGlobalExplainer
global_explainer = explainer.global_explanation(
provider=MLXGlobalExplainer())
# A summary of the global feature permutation importance algorithm and
# how to interpret the output can be displayed with
global_explainer.feature_importance_summary()
# Compute the global Feature Permutation Importance explanation
importances = global_explainer.compute_feature_importance()
# ADS supports multiple visualizations for the global Feature
# Permutation Importance explanations (see "Interpretation" above)
# Simple bar chart highlighting the average impact on model score
# across multiple iterations of the algorithm
importances.show_in_notebook()
# Build the model using AutoML. 'model' is a subclass of type ADSModel.
# Note that the ADSExplainer below works with any model (classifier or
# regressor) that is wrapped in an ADSModel
import logging
from ads.automl.provider import OracleAutoMLProvider
from ads.automl.driver import AutoML
ml_engine = OracleAutoMLProvider(n_jobs=-1, loglevel=logging.ERROR)
oracle_automl = AutoML(train, provider=ml_engine)
model, baseline = oracle_automl.train()
# Create the ADS explainer object, which is used to construct global
# and local explanation objects. The ADSExplainer takes as input the
# model to explain and the train/test dataset
from ads.explanations.explainer import ADSExplainer
explainer = ADSExplainer(test, model, training_data=train)
モデルの解釈
Global Explainer – Feature ImportanceのSample Code
28 Copyright © 2020 Oracle and/or its affiliates.
モデルの解釈
ADS Global Explainer - Individual Conditional Expectation(ICE)
F1 F2 F3 T
2 1.2 0 15.1
7 2.4 4 12.5
8 9.7 3 18.1
. ... ... 13.5
F1 F2 F3 T
2 1.2 0 15.1
F1 F2 F3 T
1 1.2 0 ?
2 2.4 4 ?
3 9.7 3 ?
. ... ... ?
F1 F2 F3 T
1 1.2 0 13.5
2 2.4 4 15.1
3 9.7 3 17.5
. ... ... ...
特徴量F1の値が変わると、
予測値Tはどのように変
化するのか?
特徴量F1の値を変化させ、
その他の特徴量値を固定
したデータセットを生成
データセットを構築
済モデルにinput、特
徴量Tの値を予測する
予測結果
データセットの特定の
インスタンス(行)を抜き
出す
T
F1
モデル
特徴量F1と予測値Tの相
関関係をチャート化
Oracle
特徴量の取りえる値によって予測値がどのように変化するのかを把握する
29 Copyright © 2020 Oracle and/or its affiliates.
モデルの解釈
ADS Global Explainer - Partial Dependence Plot(PDP)
F1 F2 F3 T
2 1.2 0 15.1
7 2.4 4 12.5
8 9.7 3 18.1
. ... ... 13.5
F1 F2 F3 T
2 1.2 0 15.1
F1 F2 F3 T
1 1.2 0 ?
2 2.4 4 ?
3 9.7 3 ?
. ... ... ?
F1 F2 F3 T
1 1.2 0 13.5
2 2.4 4 15.1
3 9.7 3 17.5
. ... ... ...
モデル
全インスタンスの特徴量F1と
予測値Tの相関関係をチャート
化
ICEのフロー
ICEのフローをデータセット
の全てのインスタンスに対
して繰り返し実行
PDP = 全インスタンスの
ICEの平均値(赤線)
Oracle
全インスタンスのICEの分布の幅と平均値を把握する
30 Copyright © 2020 Oracle and/or its affiliates.
from ads.explanations.mlx_global_explainer import MLXGlobalExplainer
global_explainer = explainer.global_explanation(
provider=MLXGlobalExplainer())
# A summary of the global partial feature dependence explanation
# algorithm and how to interpret the output can be displayed with
global_explainer.partial_dependence_summary()
# Compute the 1-feature PDP on the categorical feature, "sex",
# and numerical feature, "age"
pdp_sex = global_explainer.compute_partial_dependence("sex")
pdp_age = global_explainer.compute_partial_dependence(
"age", partial_range=(0, 1))
# ADS supports PDP visualizations for both 1-feature and 2-feature
# Feature Dependence explanations, and ICE visualizations for 1-feature
# Feature Dependence explanations (see "Interpretation" above)
# Visualize the categorical feature PDP for the True (Survived) label
pdp_sex.show_in_notebook(labels=True)
# Note that the ADSExplainer below works with any model (classifier or
# regressor) that is wrapped in an ADSModel
import logging
from ads.automl.provider import OracleAutoMLProvider
from ads.automl.driver import AutoML
ml_engine = OracleAutoMLProvider(n_jobs=-1, loglevel=logging.ERROR)
oracle_automl = AutoML(train, provider=ml_engine)
model, baseline = oracle_automl.train()
# Create the ADS explainer object, which is used to construct
# global and local explanation objects. The ADSExplainer takes
# as input the model to explain and the train/test dataset
from ads.explanations.explainer import ADSExplainer
explainer = ADSExplainer(test, model, training_data=train)
# With ADSExplainer, create a global explanation object using
# the MLXGlobalExplainer provider
モデルの解釈
Global Explainer – ICE/PDP Sample Code
31 Copyright © 2020 Oracle and/or its affiliates.
モデルの解釈
Local Explainer
• データセット
• 乗客データ(乗客のデモグラフィックデータ+α)
• 生存率(Survived= 0 or 1)を予測するモデルを構築
• 任意の乗客の生存率予測結果がなぜそのようになったのかを解釈
PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked
1 0 3 Braund, Mr. Owen male 22 1 0 7.25 S
2 1 1 Cumings, Mrs. John female 38 1 0 71.2833C
3 1 3
Heikkinen, Miss.
Laina
female 26 0 0 7.925 S
... ... ... ... ... ... ... ... ... ...
なぜそのような予測結果になったかを解釈する
例)タイタニックのデータセット(https://www.kaggle.com/c/titanic)
構築済
モデル
PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked
500 ? 1
Anna. Miss.
Bworn
female 36 1 0 71.283 C
PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked
500 1 1
Anna. Miss.
Bworn
female 36 1 0 71.283 C
学習データセット
予測結果
Why?
予測したいデータセット
32 Copyright © 2020 Oracle and/or its affiliates.
モデルの解釈
Local Explainer
PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked
1 0 3
Braund, Mr.
Owen
male 22 1 0 7.25 S
2 1 1
Cumings, Mrs.
John
female 38 1 0 71.2833 C
3 1 3
Heikkinen, Miss.
Laina
female 26 0 0 7.925 S
... ... ... ... ... ... ... ... ... ...
Oracl
e
PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked
500 ? 1
Anna. Miss.
Bworn
female 36 1 0 71.283 C
構築済
モデル
予測したいデータセットデータセット
Passenger ID = 500の予測結果と、予測結果の根拠を知りたい
「Passenger ID = 500 の予測結果」に関する解釈のチャート化
Oracle MLXによる予測結果の説明チャートの生成
33 Copyright © 2020 Oracle and/or its affiliates.
モデルの解釈
Local Explainer
PassengerID 500番の乗
客の生存率の予測結果
PassengerID 500番の
乗客の特徴量
予測結果に影響した
「特徴量」
「特徴量の重要度」
「特徴量の値(条件)」
34 Copyright © 2020 Oracle and/or its affiliates.
from ads.explanations.mlx_local_explainer import MLXLocalExplainer
local_explainer = explainer.local_explanation(
provider=MLXLocalExplainer())
# A summary of the local explanation algorithm and how to interpret
# the output can be displayed with
local_explainer.summary()
# Select a specific sample (instance/row) to generate a local
# explanation for
sample = 14
# Compute the local explanation on our sample from the test set
explanation = local_explainer.explain(test.X.iloc[sample:sample+1],
test.y.iloc[sample:sample+1])
# Visualize the explanation for the label True (Survived). See
# the "Interpretation" section above for more information
explanation.show_in_notebook(labels=True)
# Build the model using AutoML. 'model' is a subclass of type ADSModel.
# Note that the ADSExplainer below works with any model (classifier or
# regressor) that is wrapped in an ADSModel
import logging
from ads.automl.provider import OracleAutoMLProvider
from ads.automl.driver import AutoML
ml_engine = OracleAutoMLProvider(n_jobs=-1, loglevel=logging.ERROR)
oracle_automl = AutoML(train, provider=ml_engine)
model, baseline = oracle_automl.train()
# Create the ADS explainer object, which is used to construct
# global and local explanation objects. The ADSExplainer takes
# as input the model to explain and the train/test dataset
from ads.explanations.explainer import ADSExplainer
explainer = ADSExplainer(test, model, training_data=train)
# With ADSExplainer, create a local explanation object using
# the MLXLocalExplainer provider
モデルの解釈
Local Explainer
35 Copyright © 2020 Oracle and/or its affiliates.
• 構築したモデルを登録、共有するための仕組
み
• データサイエンティスト間のモデルの共有と
モデルの再現性を促進
• モデルカタログからモデルをダウンロードし、
Data Science Platform以外の環境でモデルを実
行
• ADS以外のMLライブラリで作成したモデルを
登録可能
• scikit-learn, keras, xgboost, lightGBMをサ
ポート
モデルカタログ
登録されたモデル
scikit-learn lightGBM
分析
チーム
インフラ担当 アプリ開発担当データサイエンティスト ビジネスユーザー
OCIコンソール([プロジェクト]> [モデル])
各々のNotebookセッションで共有
36 Copyright © 2020 Oracle and/or its affiliates.
Oracle Functionsへのデプロイ
Data Science Platform
OCI
API Gateway
http://hoge:8080/invoke/..
RESTEndpoint
開発環境
OCI
Functions Service
OCI
Registry Service
Application
func.yml
func.py
scorefn.py
requirement.txt
モデル
アーティファクト
?
予測結果
予測したい
データセット
cURL
• モデルのアーティファクトをダ
ウンロード
• モデルアーディファク
• func.yml
• func.py
• scorefn.py
• requirement.txt
• 各ファイル(テンプレート)を編集
• FnからOCI Functionsへアプリ
ケーションとしてデプロイ
• OCI API Gatewayにアプリケー
ションを登録
• モデルによる予測アプリの実行
環境がOCI上に構築される(OCI
Functions)
• アプリケーションがRESTエン
ドポイントとして実装(API
Gateway)
• モデルによる予測アプリの実行
環境がOCI上に構築される
• アプリケーションがRESTエン
ドポイントとして実装
訓練済みモデルによる予測処理をアプリケーションとして OCI Functionsにデプロイ
Oracle Cloud Infrastructure Data Science 技術資料(20200402)

More Related Content

What's hot

【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]オラクルエンジニア通信
 
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...オラクルエンジニア通信
 
【旧版】Oracle Autonomous Database Cloud サービス紹介資料 [2020年/3月版]
【旧版】Oracle Autonomous Database Cloud サービス紹介資料 [2020年/3月版]【旧版】Oracle Autonomous Database Cloud サービス紹介資料 [2020年/3月版]
【旧版】Oracle Autonomous Database Cloud サービス紹介資料 [2020年/3月版]オラクルエンジニア通信
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)オラクルエンジニア通信
 
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2020年3月版]
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2020年3月版]【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2020年3月版]
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2020年3月版]オラクルエンジニア通信
 
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートオラクルエンジニア通信
 
Oracle Cloud PaaS & IaaS:2018年5月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年5月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年5月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年5月度サービス情報アップデートオラクルエンジニア通信
 
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日)
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日) Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日)
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日) オラクルエンジニア通信
 
[Oracle Innovation Summit Tokyo 2018] 基幹システムのクラウド化への挑戦
[Oracle Innovation Summit Tokyo 2018] 基幹システムのクラウド化への挑戦[Oracle Innovation Summit Tokyo 2018] 基幹システムのクラウド化への挑戦
[Oracle Innovation Summit Tokyo 2018] 基幹システムのクラウド化への挑戦オラクルエンジニア通信
 
【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)
【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)
【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)オラクルエンジニア通信
 
成功ノウハウと効果からみる、データベース集約統合作業の計画と実際(Oracle Cloudウェビナーシリーズ: 2020年10月22日)
成功ノウハウと効果からみる、データベース集約統合作業の計画と実際(Oracle Cloudウェビナーシリーズ: 2020年10月22日)成功ノウハウと効果からみる、データベース集約統合作業の計画と実際(Oracle Cloudウェビナーシリーズ: 2020年10月22日)
成功ノウハウと効果からみる、データベース集約統合作業の計画と実際(Oracle Cloudウェビナーシリーズ: 2020年10月22日)オラクルエンジニア通信
 
【2018年3月時点】Oracle BI ベストプラクティス
【2018年3月時点】Oracle BI ベストプラクティス【2018年3月時点】Oracle BI ベストプラクティス
【2018年3月時点】Oracle BI ベストプラクティスオラクルエンジニア通信
 
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]オラクルエンジニア通信
 
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部オラクルエンジニア通信
 

What's hot (20)

【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
 
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...
 
【旧版】Oracle Autonomous Database Cloud サービス紹介資料 [2020年/3月版]
【旧版】Oracle Autonomous Database Cloud サービス紹介資料 [2020年/3月版]【旧版】Oracle Autonomous Database Cloud サービス紹介資料 [2020年/3月版]
【旧版】Oracle Autonomous Database Cloud サービス紹介資料 [2020年/3月版]
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
 
Oracle no sql database cloud service overview202007
Oracle no sql database cloud service overview202007Oracle no sql database cloud service overview202007
Oracle no sql database cloud service overview202007
 
データベースで始める機械学習
データベースで始める機械学習データベースで始める機械学習
データベースで始める機械学習
 
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2020年3月版]
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2020年3月版]【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2020年3月版]
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2020年3月版]
 
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
 
OCI Data Flow Overview 2020年3月版
OCI Data Flow Overview 2020年3月版OCI Data Flow Overview 2020年3月版
OCI Data Flow Overview 2020年3月版
 
Oracle Cloud PaaS & IaaS:2018年5月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年5月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年5月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年5月度サービス情報アップデート
 
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日)
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日) Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日)
Oracle Cloud の セキュリティ・コンプライアンス 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月16日)
 
はじめてのOracle Cloud Platform
はじめてのOracle Cloud PlatformはじめてのOracle Cloud Platform
はじめてのOracle Cloud Platform
 
[Oracle Innovation Summit Tokyo 2018] 基幹システムのクラウド化への挑戦
[Oracle Innovation Summit Tokyo 2018] 基幹システムのクラウド化への挑戦[Oracle Innovation Summit Tokyo 2018] 基幹システムのクラウド化への挑戦
[Oracle Innovation Summit Tokyo 2018] 基幹システムのクラウド化への挑戦
 
【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)
【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)
【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)
 
成功ノウハウと効果からみる、データベース集約統合作業の計画と実際(Oracle Cloudウェビナーシリーズ: 2020年10月22日)
成功ノウハウと効果からみる、データベース集約統合作業の計画と実際(Oracle Cloudウェビナーシリーズ: 2020年10月22日)成功ノウハウと効果からみる、データベース集約統合作業の計画と実際(Oracle Cloudウェビナーシリーズ: 2020年10月22日)
成功ノウハウと効果からみる、データベース集約統合作業の計画と実際(Oracle Cloudウェビナーシリーズ: 2020年10月22日)
 
【2018年3月時点】Oracle Data Visualizaion ご紹介
【2018年3月時点】Oracle Data Visualizaion ご紹介【2018年3月時点】Oracle Data Visualizaion ご紹介
【2018年3月時点】Oracle Data Visualizaion ご紹介
 
OCI Data Catalog Overview 2021年5月版
OCI Data Catalog Overview 2021年5月版OCI Data Catalog Overview 2021年5月版
OCI Data Catalog Overview 2021年5月版
 
【2018年3月時点】Oracle BI ベストプラクティス
【2018年3月時点】Oracle BI ベストプラクティス【2018年3月時点】Oracle BI ベストプラクティス
【2018年3月時点】Oracle BI ベストプラクティス
 
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
 
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
 

Similar to Oracle Cloud Infrastructure Data Science 技術資料(20200402)

MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEyoyamasaki
 
MySQL最新情報
MySQL最新情報MySQL最新情報
MySQL最新情報yoyamasaki
 
Oracle Application Expressと Oracle BI Publisherの連携例
Oracle Application Expressと Oracle BI Publisherの連携例Oracle Application Expressと Oracle BI Publisherの連携例
Oracle Application Expressと Oracle BI Publisherの連携例utatu
 
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニングオラクルエンジニア通信
 
[Modern Cloud Day Tokyo 2019] 基調講演(Day2):次世代クラウドがもたらす日本のイノベーション
[Modern Cloud Day Tokyo 2019] 基調講演(Day2):次世代クラウドがもたらす日本のイノベーション[Modern Cloud Day Tokyo 2019] 基調講演(Day2):次世代クラウドがもたらす日本のイノベーション
[Modern Cloud Day Tokyo 2019] 基調講演(Day2):次世代クラウドがもたらす日本のイノベーションオラクルエンジニア通信
 
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...Insight Technology, Inc.
 
20200627_MySQL開発最新動向
20200627_MySQL開発最新動向20200627_MySQL開発最新動向
20200627_MySQL開発最新動向Machiko Ikoma
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003Shinya Sugiyama
 
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...オラクルエンジニア通信
 
【OCP Summit 2016】最高のDB基盤Exadataをクラウドで活用しよう
【OCP Summit 2016】最高のDB基盤Exadataをクラウドで活用しよう【OCP Summit 2016】最高のDB基盤Exadataをクラウドで活用しよう
【OCP Summit 2016】最高のDB基盤Exadataをクラウドで活用しようオラクルエンジニア通信
 
【旧版】Oracle Content and Experience サービス概要 (2020年5月版)
【旧版】Oracle Content and Experience サービス概要 (2020年5月版)【旧版】Oracle Content and Experience サービス概要 (2020年5月版)
【旧版】Oracle Content and Experience サービス概要 (2020年5月版)オラクルエンジニア通信
 
お悩み解決! データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
お悩み解決! データベースの仮想化統合(DBの仮想化統合には気をつけろ!)オラクルエンジニア通信
 
JPA説明会
JPA説明会JPA説明会
JPA説明会Ryo Asai
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1オラクルエンジニア通信
 
2018/4/24 APEX MeetUp #2 APEX はじめの一歩
2018/4/24 APEX MeetUp #2 APEX はじめの一歩2018/4/24 APEX MeetUp #2 APEX はじめの一歩
2018/4/24 APEX MeetUp #2 APEX はじめの一歩Miyuki Ishiwata
 
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama [D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama Insight Technology, Inc.
 
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始めHadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始めオラクルエンジニア通信
 

Similar to Oracle Cloud Infrastructure Data Science 技術資料(20200402) (20)

MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTE
 
MySQL最新情報
MySQL最新情報MySQL最新情報
MySQL最新情報
 
超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!
 
Oracle Application Expressと Oracle BI Publisherの連携例
Oracle Application Expressと Oracle BI Publisherの連携例Oracle Application Expressと Oracle BI Publisherの連携例
Oracle Application Expressと Oracle BI Publisherの連携例
 
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
20151209 Oracle DDD オラクルで実現するクラウド・マシン・ラーニング
 
[Modern Cloud Day Tokyo 2019] 基調講演(Day2):次世代クラウドがもたらす日本のイノベーション
[Modern Cloud Day Tokyo 2019] 基調講演(Day2):次世代クラウドがもたらす日本のイノベーション[Modern Cloud Day Tokyo 2019] 基調講演(Day2):次世代クラウドがもたらす日本のイノベーション
[Modern Cloud Day Tokyo 2019] 基調講演(Day2):次世代クラウドがもたらす日本のイノベーション
 
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
 
20200627_MySQL開発最新動向
20200627_MySQL開発最新動向20200627_MySQL開発最新動向
20200627_MySQL開発最新動向
 
Oracle APEX概要
Oracle APEX概要Oracle APEX概要
Oracle APEX概要
 
Oracle Advanced Analytics 概要
Oracle Advanced Analytics 概要Oracle Advanced Analytics 概要
Oracle Advanced Analytics 概要
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003
 
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
 
【OCP Summit 2016】最高のDB基盤Exadataをクラウドで活用しよう
【OCP Summit 2016】最高のDB基盤Exadataをクラウドで活用しよう【OCP Summit 2016】最高のDB基盤Exadataをクラウドで活用しよう
【OCP Summit 2016】最高のDB基盤Exadataをクラウドで活用しよう
 
【旧版】Oracle Content and Experience サービス概要 (2020年5月版)
【旧版】Oracle Content and Experience サービス概要 (2020年5月版)【旧版】Oracle Content and Experience サービス概要 (2020年5月版)
【旧版】Oracle Content and Experience サービス概要 (2020年5月版)
 
お悩み解決! データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
お悩み解決! データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
 
JPA説明会
JPA説明会JPA説明会
JPA説明会
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
 
2018/4/24 APEX MeetUp #2 APEX はじめの一歩
2018/4/24 APEX MeetUp #2 APEX はじめの一歩2018/4/24 APEX MeetUp #2 APEX はじめの一歩
2018/4/24 APEX MeetUp #2 APEX はじめの一歩
 
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama [D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
 
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始めHadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
 

More from オラクルエンジニア通信

Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデートOracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートOracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデートOracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートOracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデートOracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデートOracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートOracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートOracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートOracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデートOracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデートOracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデートOracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)オラクルエンジニア通信
 
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会オラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートOracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデートOracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートオラクルエンジニア通信
 
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)オラクルエンジニア通信
 

More from オラクルエンジニア通信 (20)

Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデートOracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートOracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデートOracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートOracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデートOracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデートOracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートOracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートOracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートOracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデートOracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデートOracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデートOracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
 
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)
 
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
 
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートOracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデートOracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
 
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
 

Oracle Cloud Infrastructure Data Science 技術資料(20200402)

  • 2. 以下の事項は、弊社の一般的な製品の方向性に関する概要を解釈するものです。また、情報提供を唯一 の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルや コード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判 断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により 決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商 標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。 以下の事項は、弊社の一般的な製品の方向性に関する概要を解釈するものです。また、情報提供を唯一 の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルや コード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判 断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により 決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商 標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。 2 Copyright © 2020 Oracle and/or its affiliates.
  • 3. 3 Copyright © 2020 Oracle and/or its affiliates. • 分析プロジェクトにおける共同ワークスペー スを提供するサービス • データサイエンティストチームだけでなく、 異なる部門の専門家がチームとして、分析 プロジェクトを推進 • 複数のデータサイエンティスト間のノウハ ウの共有 - ソースコード - トレーニングデータ - 予測モデル • 機械学習(ML)のOSSテクノロジー、ライブラ リ、パッケージ、Oracle Accelerated Data Science(ADS)をプリインストール済み • 他社MLライブラリでトレーニング済のモデル をインポート可能 • PaaSとしては無償、IaaSのみの課金 Overview
  • 4. 4 Copyright © 2020 Oracle and/or its affiliates. • プロジェクト • 全てのリソースを保持する共同ワークスペース • Notebookセッション • モデルを構築、学習するためのコーディング環境 • Jupyter Notebook、MLライブラリ群がプリインス トールされたComputeインスタンス • 作成時にCompartment、VCN、Subnet、Compute シェイプ、Block Volumeの容量を指定 • MLライブラリ • Keras • scikit-learn • XGBoost • Oracle Accelerated Data Science(ADS) • モデルカタログ • 構築したモデルを登録、共有するストレージ領域 コンポーネント Accelerated Data Science scikit-learn MLライブラリ Jupyter Notebook Notebootセッション Compute Block Storage プロジェクト モデルカタログ モデル モデル 分析チーム インフラ担当 アプリ開発担当データサイエンティスト ビジネスユーザー ノウハウ、リソースの共有共同開発
  • 5. 5 Copyright © 2020 Oracle and/or its affiliates. ③Notebookにログイン後、 Pythonでコーディング開始 ②プロジェクト内にNotebook セッションの作成 ①プロジェクトの作成 開発までのステップ OCIコンソール OCIコンソール Jupyter Notebook
  • 6. 6 Copyright © 2020 Oracle and/or its affiliates. • Data Science Platformの一部として機能する Pythonライブラリ • 機械学習のライフサイクル全てのフェーズで 使いやすくシンプルなAPI • Oracle AutoML • ワークフロー内の処理の自動化 • 処理時間の削減 • モデル精度の向上 Oracle Accelerated Data Science(ADS) 機械学習のワークフロー AutoML Confidential – © 2020 Oracle Internal ⑥モデルの 解釈 ②データの 変換 ①データの ロード ⑤モデルの 評価 ③データの 可視化 ④モデルの 学習 Accelerated data Science
  • 7. 7 Copyright © 2020 Oracle and/or its affiliates. • ADSによる容易な接続とデータロード • DatasetFactoryクラスの利用 • 対応データストア • ローカルファイルシステム • OCI Object Storage, Amazon S3, Google Cloud Storage, Azure Blob • Oracle DB, ADW, MongoDB, HDFS, NoSQL DB, Elastic Search, etc. • 対応ファイルフォーマット • CSV, TSV, Parquet, libsvm, json, Excel, HDF5, SQL, xml, Apache Server Logfile(clf, log), arff データのロード 分析対象のデータをデータストアから読み込みデータセットを作成するフェーズ
  • 8. 8 Copyright © 2020 Oracle and/or its affiliates. データロード サンプルコード # ローカルファイルシステムからのロード ds = DatasetFactory.open("/path/to/data.data", format='csv', delimiter=" ") # OCI Object Storage Serviceからのロード ds = DatasetFactory.open("oci://<bucket-name>/<file-name>", storage_options = { "config": "~/.oci/config", "profile": "DEFAULT_USER" }) # Amazon S3からのロード ds = DatasetFactory.open("s3://bucket_name/iris.csv", storage_options = { 'key': 'aws key', 'secret': 'aws secret, 'blocksize': 1000000, 'client_kwargs': { "endpoint_url": "https://s3-us-west-1.amazonaws.com" } }) # ADWからのロード uri = f'oracle+cx_oracle://{os.environ["ADW_USER"]}:{os.environ["ADW_PASSWORD"]}@{os.environ["ADW_SID"]}’ ds = DatasetFactory.open(uri, format="sql", table=table, index_col=index_col, target='label')
  • 9. 9 Copyright © 2020 Oracle and/or its affiliates. • 生データをRDBのような「完全に正規化された表形式のデータ」に成形 • 機械学習に特有のデータ成形(特徴量エンジニアリング) データ変換 データセットを機械学習に使える形に成形するフェーズ • テキストデータの単語分割、頻度カウント • 文字列の”エンコード” • 低頻度語や異常値の除外 • 欠損値データの処理 • モデル生成に関係しないデータの削除 • モデル生成に含めるべきでないデータの削除 • etc. 特徴量エンジニアリングの一般的な処理例
  • 10. 10 Copyright © 2020 Oracle and/or its affiliates. • 行の操作 • 削除、追加、フィルタ、重複行の削除 • 列の操作 • 削除、追加、フィルタ、列名の変更、データ型の変換、ノーマライズ • String列に対する操作 • クラスラベルのカウント、ラベルの長さの変更(文字数の変更)、大文字・小文字の変換 • データセットの操作 • Nullのある列の検出、Nullの変更、結合 データ変換 行、列、データセットの操作
  • 11. 11 Copyright © 2020 Oracle and/or its affiliates. 1. 定数、主キー列の削除 2. 欠損値の補完、削除 3. 予測精度を下げる可能性のある特徴量の削除 4. データセットの均衡化 データ変換 ADSによる特徴量エンジニアリングの自動化 # 推奨の自動処理内容を確認しながらデータセットに反映するケース ds.get_recommendations() transformed_ds = ds.get_transformed_dataset() # 推奨の自動処理内容を確認せずにデータセットに反映するケース transformed_ds = ds.auto_transform() ADSのAutoMLライブラリにより、一部特徴量エンジニアリングの自動化が可能
  • 12. 12 Copyright © 2020 Oracle and/or its affiliates. データ変換 ADSによる特徴量エンジニアリングの自動化 定数 主キー列 変換前のデータセット(行数, 列数) 変換後のデータセット(行数, 列数) “Drop”を選択 get_recommendations()による定数、主キー列の検知
  • 13. 13 Copyright © 2020 Oracle and/or its affiliates. データ変換 欠損値の補完、削除 変換前のデータセット(行数, 列数) 変換後のデータセット(行数, 列数) 欠損値の ある列 “Drop”を選択 get_recommendations()による欠損値の検知
  • 14. 14 Copyright © 2020 Oracle and/or its affiliates. データ変換 予測精度を下げる可能性のある特徴量の削除 変換前のデータセット(行数, 列数) 変換後のデータセット(行数, 列数) 欠損値の ある列 “Drop”を選択 get_recommendations()による多重共線性の可能性のある特徴量の検知
  • 15. 15 Copyright © 2020 Oracle and/or its affiliates. データ変換 データセットの均衡化(アップサンプリング、ダウンサンプリング) 変換後のデータセット(行数, 列数) “Up-sample”を選択 “Down-sample”を選択 変換前のデータセット(行数, 列数) データに偏り のある列 get_recommendations()によるデータ不均衡の検知
  • 16. 16 Copyright © 2020 Oracle and/or its affiliates. • データ列のタイプを自動的に検出し、データをプロットする最適な方法を提供するスマートな可視化 ツールを提供 • 可視化の種類 • 組み込み関数によるデータセットのサマリ、その他チャート • 可視化API(Seaborn, Matplotlib, GIS)を使ったコーディングによる可視化 データの可視化 データからより多くの洞察を直感的に得るために、データセットを様々なチャートで可視化する フェーズ
  • 17. 17 Copyright © 2020 Oracle and/or its affiliates. データの可視化 データセットのサマリ #データセットをshow_in_notebook()関数に渡す ds.show_in_notebook() データセットに関する 列数、行数、特徴タイプ データセットの特徴量、値の分布 データセットの先頭5行の表示 データセットに関する基本情報の包括的なプレビューを可視化 特徴量の相関マップ
  • 18. 18 Copyright © 2020 Oracle and/or its affiliates. データの可視化 組み込み関数によるチャート カウントプロット、バイオリン曲線、ガウスヒートマップ # カウントプロット ds.plot("col02").show_in_notebook(figsize=(4,4)) # バイオリンプロット ds.plot("col02", y="col01").show_in_notebook(figsize=(4,4)) # ガウスヒートマップ ds.plot("col01", y="col03").show_in_notebook()
  • 19. 19 Copyright © 2020 Oracle and/or its affiliates. データ可視化 可視化APIを使ったコーディングによる可視化 # Matplotlibでのパイチャートのコーディング例 from numpy.random import randn df = pd.DataFrame(randn(1000, 4), columns=list('ABCD')) def ts_plot(df, figsize): ts = pd.Series(randn(1000), index=pd.date_range('1/1/2000', periods=1000)) df.set_index(ts) df = df.cumsum() plt.figure() df.plot(figsize=figsize) plt.legend(loc='best') ds = DatasetFactory.from_dataframe(df, target='A') ds.call(ts_plot, figsize=(7,7)) 散布図 多次元折れ線チャート 世界地図チャート パイチャートSeaborn, Matplotlib, GIS
  • 20. 20 Copyright © 2020 Oracle and/or its affiliates. • ADSの AutoML により合理的な時間内で精度の高いモデルを生成 • データサイエンスのノウハウが必要かつ、時間のかかる作業を自動化 1. 最適なアルゴリズム選択の自動化 2. サンプリングの自動化(アダプティブサンプリング) 3. 最適な特徴量選択の自動化 4. ハイパーパラメータ・チューニングの自動化 モデルの学習 成形済みのデータセットを統計処理にかけ、予測モデルを構築するフェーズ # 成形済みデータセットをトレーニングデータとテストデータに分割 train, test = transformed_ds.train_test_split(test_size=0.1) # トレーニングデータを学習しモデルを構築 ml_engine = OracleAutoMLProvider(n_jobs=-1, loglevel=logging.ERROR) oracle_automl = AutoML(train, provider=ml_engine) automl_model1, baseline = oracle_automl.train() アルゴリズムのリスト • AdaBoostClassifier • DecisionTreeClassifier • ExtraTreesClassifier • KNeighborsClassifier • LGBMClassifier • LinearSVC • LogisticRegression • RandomForestClassifier • SVC • XGBClassifier
  • 21. 21 Copyright © 2020 Oracle and/or its affiliates. モデルの学習 Oracle AutoMLによる自動化 ①最適なアルゴリズム選択の自動化 ②サンプリングの自動化 oracle_automl.visualize_algorithm_selection_trials() oracle_automl.visualize_adaptive_sampling_trials()
  • 22. 22 Copyright © 2020 Oracle and/or its affiliates. モデルの学習 Oracle AutoMLによる自動化 ③最適な特徴量選択の自動化 ④ハイパーパラメータ・チューニングの自動化 oracle_automl.visualize_feature_selection_trials() oracle_automl.visualize_tuning_trials()
  • 23. 23 Copyright © 2020 Oracle and/or its affiliates. • テストデータを用いた予測結果を解釈可能な標準化された一連のスコアとチャートに変換する • 評価対象:「バイナリ分類」、「マルチクラス分類」、「回帰」 • 評価手法:ホールドアウト法、クロスバリデーション(汎化性が高い) モデルの評価 「このモデルは本当に正しいのか?」、「このモデルはどれだけ優れているのか?」を知るフェーズ TESTTESTTESTTESTTEST TRAIN ホールドアウト法 学習 モデル生成 評価 TESTTESTTESTTESTTEST TRAIN TRAIN TEST TRAIN TRAINTEST TRAINTEST TRAINTEST クロスバリデーション(※1) 1回目 2回目 3回目 4回目 5回目 ※1:データをN個に分けて、1回目はそのうち1つをTEST用、残りのN-1個を TRAIN用として使用。2回目は別の1つをTEST用、残りのN-1個をTRAIN用 として使用・・・をN回繰り返し、各回で測定した精度の平均を取る
  • 24. 24 Copyright © 2020 Oracle and/or its affiliates. モデルの評価 評価結果のチャート 例)バイナリ分類 • リフトチャート、ゲインチャート • PR曲線、ROC曲線 • 混合行列 # 評価の実行 bin_evaluator = ADSEvaluator(test, models=[bin_lr_model, bin_rf_model], training_data=train) # 評価結果のチャート化 bin_evaluator.show_in_notebook(perfect=True)
  • 25. 25 Copyright © 2020 Oracle • モデルの解釈とは? • モデルや予測結果を人間が解釈可能な状態にチャート化すること • なぜモデルの解釈が必要なのか? • 予測結果のブラックボックス化を防止 • 開発者がモデルの挙動を理解し、モデルの品質改善やデバッグをより容易にする • 解釈の種類 • Global Explainer = モデル自体の解釈 - 特徴量重要度(Feature Permutation Importance) - 個別条件付き期待値(Individual Conditional Expectation(ICE)) - 部分従属プロット(Partial Dependence Plot(PDP)) • Local Explainer = 特定のデータに対してモデルが予測した結果の解釈 モデルの解釈 「どのようなモデルが構築されたのか?」、「なぜそのような予測結果になったのか?」を 知るフェーズ
  • 26. 26 Copyright © 2020 Oracle and/or its affiliates. 構築済モデルにおいて「どの特徴量が予測モデルに強く影響し、どの特徴量は影響しないのか?」を特 定する モデルの解釈 ADS Global Explainer – Feature Permutation Importance PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked 1 0 3 Braund, Mr. Owen male 22 1 0 7.25 S 2 1 1 Cumings, Mrs. John female 38 1 0 71.2833 C 3 1 3 Heikkinen, Miss. Laina female 26 0 0 7.925 S 4 1 1 Futrelle, Mrs. Jacques Heath female 35 1 0 53.1 S ①既存のモデルの予測精度を計測 PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked 1 0 3 Braund, Mr. Owen Female 22 1 0 7.25 S 2 1 1 Cumings, Mrs. John Male 38 1 0 71.2833 C 3 1 3 Heikkinen, Miss. Laina Male 26 0 0 7.925 S 4 1 1 Futrelle, Mrs. Jacques Heath male 35 1 0 53.1 S ②特定の特徴量の値をシャッフルし予測精度を計測 予測精度(baseline_score) 予測精度(shuffled_score) ③baseline_scoreとshuffled_scoreの差が大きい順に特徴量をランキング baseline_scoreとshuffled_scoreの差 が大きいほど重要な特徴量だと判断 • シャッフルすることで特定の特徴 量を無効状態にし予測精度を計測 • 各特徴量毎に繰り返し予測精度を 繰り返し計測する 既存のモデルの予測精度を計測し、 ベースラインにする baseline_score - shffuled_score
  • 27. 27 Copyright © 2020 Oracle and/or its affiliates. # With ADSExplainer, create a global explanation object using # the MLXGlobalExplainer provider from ads.explanations.mlx_global_explainer import MLXGlobalExplainer global_explainer = explainer.global_explanation( provider=MLXGlobalExplainer()) # A summary of the global feature permutation importance algorithm and # how to interpret the output can be displayed with global_explainer.feature_importance_summary() # Compute the global Feature Permutation Importance explanation importances = global_explainer.compute_feature_importance() # ADS supports multiple visualizations for the global Feature # Permutation Importance explanations (see "Interpretation" above) # Simple bar chart highlighting the average impact on model score # across multiple iterations of the algorithm importances.show_in_notebook() # Build the model using AutoML. 'model' is a subclass of type ADSModel. # Note that the ADSExplainer below works with any model (classifier or # regressor) that is wrapped in an ADSModel import logging from ads.automl.provider import OracleAutoMLProvider from ads.automl.driver import AutoML ml_engine = OracleAutoMLProvider(n_jobs=-1, loglevel=logging.ERROR) oracle_automl = AutoML(train, provider=ml_engine) model, baseline = oracle_automl.train() # Create the ADS explainer object, which is used to construct global # and local explanation objects. The ADSExplainer takes as input the # model to explain and the train/test dataset from ads.explanations.explainer import ADSExplainer explainer = ADSExplainer(test, model, training_data=train) モデルの解釈 Global Explainer – Feature ImportanceのSample Code
  • 28. 28 Copyright © 2020 Oracle and/or its affiliates. モデルの解釈 ADS Global Explainer - Individual Conditional Expectation(ICE) F1 F2 F3 T 2 1.2 0 15.1 7 2.4 4 12.5 8 9.7 3 18.1 . ... ... 13.5 F1 F2 F3 T 2 1.2 0 15.1 F1 F2 F3 T 1 1.2 0 ? 2 2.4 4 ? 3 9.7 3 ? . ... ... ? F1 F2 F3 T 1 1.2 0 13.5 2 2.4 4 15.1 3 9.7 3 17.5 . ... ... ... 特徴量F1の値が変わると、 予測値Tはどのように変 化するのか? 特徴量F1の値を変化させ、 その他の特徴量値を固定 したデータセットを生成 データセットを構築 済モデルにinput、特 徴量Tの値を予測する 予測結果 データセットの特定の インスタンス(行)を抜き 出す T F1 モデル 特徴量F1と予測値Tの相 関関係をチャート化 Oracle 特徴量の取りえる値によって予測値がどのように変化するのかを把握する
  • 29. 29 Copyright © 2020 Oracle and/or its affiliates. モデルの解釈 ADS Global Explainer - Partial Dependence Plot(PDP) F1 F2 F3 T 2 1.2 0 15.1 7 2.4 4 12.5 8 9.7 3 18.1 . ... ... 13.5 F1 F2 F3 T 2 1.2 0 15.1 F1 F2 F3 T 1 1.2 0 ? 2 2.4 4 ? 3 9.7 3 ? . ... ... ? F1 F2 F3 T 1 1.2 0 13.5 2 2.4 4 15.1 3 9.7 3 17.5 . ... ... ... モデル 全インスタンスの特徴量F1と 予測値Tの相関関係をチャート 化 ICEのフロー ICEのフローをデータセット の全てのインスタンスに対 して繰り返し実行 PDP = 全インスタンスの ICEの平均値(赤線) Oracle 全インスタンスのICEの分布の幅と平均値を把握する
  • 30. 30 Copyright © 2020 Oracle and/or its affiliates. from ads.explanations.mlx_global_explainer import MLXGlobalExplainer global_explainer = explainer.global_explanation( provider=MLXGlobalExplainer()) # A summary of the global partial feature dependence explanation # algorithm and how to interpret the output can be displayed with global_explainer.partial_dependence_summary() # Compute the 1-feature PDP on the categorical feature, "sex", # and numerical feature, "age" pdp_sex = global_explainer.compute_partial_dependence("sex") pdp_age = global_explainer.compute_partial_dependence( "age", partial_range=(0, 1)) # ADS supports PDP visualizations for both 1-feature and 2-feature # Feature Dependence explanations, and ICE visualizations for 1-feature # Feature Dependence explanations (see "Interpretation" above) # Visualize the categorical feature PDP for the True (Survived) label pdp_sex.show_in_notebook(labels=True) # Note that the ADSExplainer below works with any model (classifier or # regressor) that is wrapped in an ADSModel import logging from ads.automl.provider import OracleAutoMLProvider from ads.automl.driver import AutoML ml_engine = OracleAutoMLProvider(n_jobs=-1, loglevel=logging.ERROR) oracle_automl = AutoML(train, provider=ml_engine) model, baseline = oracle_automl.train() # Create the ADS explainer object, which is used to construct # global and local explanation objects. The ADSExplainer takes # as input the model to explain and the train/test dataset from ads.explanations.explainer import ADSExplainer explainer = ADSExplainer(test, model, training_data=train) # With ADSExplainer, create a global explanation object using # the MLXGlobalExplainer provider モデルの解釈 Global Explainer – ICE/PDP Sample Code
  • 31. 31 Copyright © 2020 Oracle and/or its affiliates. モデルの解釈 Local Explainer • データセット • 乗客データ(乗客のデモグラフィックデータ+α) • 生存率(Survived= 0 or 1)を予測するモデルを構築 • 任意の乗客の生存率予測結果がなぜそのようになったのかを解釈 PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked 1 0 3 Braund, Mr. Owen male 22 1 0 7.25 S 2 1 1 Cumings, Mrs. John female 38 1 0 71.2833C 3 1 3 Heikkinen, Miss. Laina female 26 0 0 7.925 S ... ... ... ... ... ... ... ... ... ... なぜそのような予測結果になったかを解釈する 例)タイタニックのデータセット(https://www.kaggle.com/c/titanic) 構築済 モデル PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked 500 ? 1 Anna. Miss. Bworn female 36 1 0 71.283 C PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked 500 1 1 Anna. Miss. Bworn female 36 1 0 71.283 C 学習データセット 予測結果 Why? 予測したいデータセット
  • 32. 32 Copyright © 2020 Oracle and/or its affiliates. モデルの解釈 Local Explainer PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked 1 0 3 Braund, Mr. Owen male 22 1 0 7.25 S 2 1 1 Cumings, Mrs. John female 38 1 0 71.2833 C 3 1 3 Heikkinen, Miss. Laina female 26 0 0 7.925 S ... ... ... ... ... ... ... ... ... ... Oracl e PassengerId Survived Pclass Name Sex Age SibSp Parch Fare Embarked 500 ? 1 Anna. Miss. Bworn female 36 1 0 71.283 C 構築済 モデル 予測したいデータセットデータセット Passenger ID = 500の予測結果と、予測結果の根拠を知りたい 「Passenger ID = 500 の予測結果」に関する解釈のチャート化 Oracle MLXによる予測結果の説明チャートの生成
  • 33. 33 Copyright © 2020 Oracle and/or its affiliates. モデルの解釈 Local Explainer PassengerID 500番の乗 客の生存率の予測結果 PassengerID 500番の 乗客の特徴量 予測結果に影響した 「特徴量」 「特徴量の重要度」 「特徴量の値(条件)」
  • 34. 34 Copyright © 2020 Oracle and/or its affiliates. from ads.explanations.mlx_local_explainer import MLXLocalExplainer local_explainer = explainer.local_explanation( provider=MLXLocalExplainer()) # A summary of the local explanation algorithm and how to interpret # the output can be displayed with local_explainer.summary() # Select a specific sample (instance/row) to generate a local # explanation for sample = 14 # Compute the local explanation on our sample from the test set explanation = local_explainer.explain(test.X.iloc[sample:sample+1], test.y.iloc[sample:sample+1]) # Visualize the explanation for the label True (Survived). See # the "Interpretation" section above for more information explanation.show_in_notebook(labels=True) # Build the model using AutoML. 'model' is a subclass of type ADSModel. # Note that the ADSExplainer below works with any model (classifier or # regressor) that is wrapped in an ADSModel import logging from ads.automl.provider import OracleAutoMLProvider from ads.automl.driver import AutoML ml_engine = OracleAutoMLProvider(n_jobs=-1, loglevel=logging.ERROR) oracle_automl = AutoML(train, provider=ml_engine) model, baseline = oracle_automl.train() # Create the ADS explainer object, which is used to construct # global and local explanation objects. The ADSExplainer takes # as input the model to explain and the train/test dataset from ads.explanations.explainer import ADSExplainer explainer = ADSExplainer(test, model, training_data=train) # With ADSExplainer, create a local explanation object using # the MLXLocalExplainer provider モデルの解釈 Local Explainer
  • 35. 35 Copyright © 2020 Oracle and/or its affiliates. • 構築したモデルを登録、共有するための仕組 み • データサイエンティスト間のモデルの共有と モデルの再現性を促進 • モデルカタログからモデルをダウンロードし、 Data Science Platform以外の環境でモデルを実 行 • ADS以外のMLライブラリで作成したモデルを 登録可能 • scikit-learn, keras, xgboost, lightGBMをサ ポート モデルカタログ 登録されたモデル scikit-learn lightGBM 分析 チーム インフラ担当 アプリ開発担当データサイエンティスト ビジネスユーザー OCIコンソール([プロジェクト]> [モデル]) 各々のNotebookセッションで共有
  • 36. 36 Copyright © 2020 Oracle and/or its affiliates. Oracle Functionsへのデプロイ Data Science Platform OCI API Gateway http://hoge:8080/invoke/.. RESTEndpoint 開発環境 OCI Functions Service OCI Registry Service Application func.yml func.py scorefn.py requirement.txt モデル アーティファクト ? 予測結果 予測したい データセット cURL • モデルのアーティファクトをダ ウンロード • モデルアーディファク • func.yml • func.py • scorefn.py • requirement.txt • 各ファイル(テンプレート)を編集 • FnからOCI Functionsへアプリ ケーションとしてデプロイ • OCI API Gatewayにアプリケー ションを登録 • モデルによる予測アプリの実行 環境がOCI上に構築される(OCI Functions) • アプリケーションがRESTエン ドポイントとして実装(API Gateway) • モデルによる予測アプリの実行 環境がOCI上に構築される • アプリケーションがRESTエン ドポイントとして実装 訓練済みモデルによる予測処理をアプリケーションとして OCI Functionsにデプロイ

Editor's Notes

  1. https://www.rittmanmead.com/blog/2020/02/machine-learning-collaboration-with-oracle-data-science/
  2. https://github.com/pandas-profiling/pandas-profiling/issues/221 https://pandas-profiling.github.io/pandas-profiling/docs/#advanced-usage In your case: # For numeric check_correlation_pearson: True correlation_threshold_pearson: 0.9 # For categorical check_correlation_cramers: False correlation_threshold_cramers: 0.9
  3. PassengerID: 乗客ID Survived:   生存結果 (1: 生存, 2: 死亡)  Pclass:    乗客の階級 1が一番位が高いそう Name:     乗客の名前 Sex:      性別 Age:      年齢 SibSp      兄弟、配偶者の数。 Parch     両親、子供の数。 Ticket     チケット番号。 Fare      乗船料金。 Cabin     部屋番号 Embarked    乗船した港 Cherbourg、Queenstown、Southamptonの3種類があります
  4. PassengerID: 乗客ID Survived:   生存結果 (1: 生存, 2: 死亡)  Pclass:    乗客の階級 1が一番位が高いそう Name:     乗客の名前 Sex:      性別 Age:      年齢 SibSp      兄弟、配偶者の数。 Parch     両親、子供の数。 Ticket     チケット番号。 Fare      乗船料金。 Cabin     部屋番号 Embarked    乗船した港 Cherbourg、Queenstown、Southamptonの3種類があります
  5. model_artifact = prepare_generic_model('/home/datascience/block_storage/my_model/')
  6. Fn Project ことはじめ https://oracle-japan.github.io/paasdocs/documents/faas/fn/handson/getting-started/ curl -X "POST" -H "Content-Type: application/json" -d '{"input":[[0.9426354816951444,10.0,1.4691851561691212,-443.41377583633323,-0.01884418423666756,2.5156476289097847,-9.0,101.0,-9.0,-0.13569659843193554,1000.0,10.0,0.0,0.0,1.4507967114096254,-43.87337348658269,0.0004781176582166312,3.0990946463672753,-4.668506323375299,-0.1549329356194024,19.421065136359413,0.203789137870722,-0.0016150491614570614,2.8334756912076617,-0.004230294763510757,10.0,-1.0,16.602457994672683,1.8711181897376987,11.801446013761858,-1.5978704963512458,1.2148721218109126,-407.3669945970512,133.0075252989285,1.2262200162027341,100.0,8.001033298496045,-0.026874430938811675,1.3678443110500578,1.7197167339866108,0.1435355464405037,1000.0,0.1954810896006457,0.05063792285779614,-2.428815607323977,-4.695494887609295,109.86208050517756,157.98065903844312]]}' http://localhost:8080/invoke/01DY5T8ZRKNG8G00GZJ000001M { "prediction": [1.0] }