Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2023SPSS秋06_AIT林様

JPSPSS
November 05, 2023

 2023SPSS秋06_AIT林様

2023/10/31に開催されたSPSS 秋のユーザーイベントのご講演
株式会社AIT 林 啓一郎様
「SPSS名人からの挑戦状 Modeler詰将棋① 素数はいくつある?」
のスライド資料(公開版)です。

JPSPSS

November 05, 2023
Tweet

More Decks by JPSPSS

Other Decks in Technology

Transcript

  1. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 3 株式会社AIT

    会社概要 本 社 東京都江東区佐賀1-5-6 永代OTビル 1991年9月1日 大熊 克美 IBMビジネスパートナー/ソリューションプロバイダー IBMハードウェア製品の販売・インフラ構築 IBMソフトウェア製品の販売・インフラ構築 クラウド、アナリティクス製品の販売・インフラ構築 オープンシステムのアプリケーション開発 帳票、CRM、セキュリティソリューション 4億円 131.5億円(2023年3月期実績) 設 立 日 代表取締役社長 事 業 内 容 資 本 金 売 上 高 アナリティクス:データ分析支援 / DX人材育成 HW/SW販売・構築・運用支援サービス クウラド(IBM,AWS) / OpenShift / ブロックチェーン 運用監視サービス 電子帳票ソリューション(SVF, FiBridge) https://www.ait.co.jp/
  2. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 4 アナリティクス事業沿革

    / サービス紹介 事例発表 IBMに統合 事例発表 事例発表 2016 1988 2009 2011 2012 2013 2014 2015 取り扱い開始 分析支援サービス / アドバイザリーサービスの開始 トレーニングサービスの開始 無料体験セミナーの開始 毎月開催 事例発表 AITユーザー会開催 事例講演 事例発表 2018 2019 事例発表 全国老人 保健施設協会 2020 事例講演 IBM SPSS IBM SPSS 2021 取り扱い開始 H20 Driverless AI SPSS社 SPSS 販売開始 2017 「AI365」 発表 2022 https://ai365.jp/ データ分析アドバイザリーサービス ビジネス目標につながるデータ活用のご支援 データ活用の検討段階から、お客様の様々な ご相談に対応するコンサルティングサービス SPSSソフトウェア導入支援サービス データ活用の効率化を推進するSPSSソフトウェア導入のご支援 SPSSのクライアントからサーバー製品等の導入をご支援。 SPSSハンズオントレーニングもございます。 2023
  3. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 6 考察編

    ▪例題1:「素数が1万までの間にいくつあるかを計算する」 以下のような1から1万までのレコードから素数をカウントしてください(2手詰め)。 データの含まれるサンプルストリームは以下からDLできます。(解答プロセスにはロックがかかっています) https://github.com/yoichiro0903n/blue/raw/main/prime_lock.str
  4. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 7 考察編

    ▪まず素数とは 素数(そすう、英: primeあるいはprime number)とは、2 以上の自然数で、正の約数が 1 と自分自身のみであるもののことであ る。正の約数の個数が 2 である自然数と言い換えることもできる。 [引用 : WikiPedia - https://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0] [出典 : WikiPedia - https://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0]
  5. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 8 考察編

    ▪アプローチ① - 素数を探そう 素数は、正の約数が 1 と自分自身のみ であるもの 自身より小さい数値で割り算して、 1以外で割り切れない(余りが0にならない) 数値を探す
  6. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 9 考察編

    ▪アプローチ① - 素数を探そう ・SPSSで実装することを前提に考える。 ID 1 5 ÷ 1 = 5 余 0 2 5 ÷ 2 = 2 余 1 3 5 ÷ 3 = 1 余 2 4 5 ÷ 4 = 1 余 1 5 例えば、5 が素数であるかどうか判定するには、左の表のようなイメージになる。 読み込んだデータを上方参照して1まで順に割り算していく 5 ÷ 4 = 1 余 1 5 ÷ 3 = 1 余 2 5 ÷ 2 = 2 余 1 5 ÷ 1 = 5 余 0 そうすると、1までは余りが0になることはないため、5は素数となります。 ID 1 6 ÷ 1 = 6 余 0 2 6 ÷ 2 = 3 余 0 3 6 ÷ 3 = 2 余 0 4 6 ÷ 4 = 1 余 2 5 6 ÷ 5 = 1 余 1 6 6 が素数であるかどうか判定すると、 読み込んだデータを上方参照して1まで順に割り算していく 6 ÷ 5 = 1 余 1 6 ÷ 4 = 1 余 2 6 ÷ 3 = 2 余 0 6 ÷ 2 = 3 余 0 6 ÷ 1 = 6 余 0 そうすると、3の時点で余りが 0 になるため 6 は素数ではありません。
  7. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 10 考察編

    ▪アプローチ② - 素数に目印をつける アプローチ①で素数かどうかを判定できたら、素数に目印をつける。 SPSSで実装することを前提に考えると ID 素数 1 0 2 1 3 1 4 0 5 1 左の表のように ・フラグ型のフィールドで素数の目印をつける ・素数の数を計算したいので、1 or 0 の数値でフラグ化する ( 素数 = 1 、素数でない = 0 ) ▪アプローチ③ - 最後に集計する 最後は、アプローチ②のフラグを集計すれば完了です。 ID 素数 1 0 2 1 3 1 4 0 5 1
  8. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 12 実装編①

    ▪アプローチ① - 素数を探そう – 実装① ①. 素数かどうかを確認したい値を分子として分母の値を上方参照しながら変えていき、余りが0になるかを確認する。 ID 条件文<余り = 0> @SINCE(条件文) の戻り値 1 5 ÷ 1 = 5 余 0 真 4 2 5 ÷ 2 = 2 余 1 偽 - 3 5 ÷ 3 = 1 余 2 偽 - 4 5 ÷ 4 = 1 余 1 偽 - 5 @SINCE関数の戻り値は = 真の時から渡されたレコード数 真と判定されたID 1 のレコードから ID 5 のレコードまで は4レコード下にある。 ID 5 から上に検索して 4レコード上のID 1のレコードで 真となったので、@SINCE(余り=0)の戻り値は4 TIPS 1 : @SINCE関数を利用しよう @SINCE( 条件文 ) というCLEM式のシーケンス関数。 この関数は、条件文に合致するレコードを上方に向かって検索し、真の時から渡されたレコード数を返します。一度も真にならな かった場合は、@INDEX+1 を返します。 現在のレコードは考慮しません。 例). @SINCE( 余り = 0 )という処理をした場合 余り0?
  9. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 13 実装編①

    ▪アプローチ① - 素数を探そう – 実装① ①. 素数かどうかを確認したい値を分子として分母の値を上方参照しながら変えていき、余りが0になるかを確認する TIPS 2 : 演算子mod(rem)を利用して余りを計算する CLEM式の演算子で mod(rem) を利用すると余りが計算できます。 例). 7 mod 3 = 1 or 7 rem 3 = 1 なので、以下のような条件文で余り=0であるかどうかを確認することになります。 例). A mod B = 0 ID ID mod ID @SINCE(条件文) の戻り値 1 1 ÷ 1 = 5 余 0 真 - 2 2 ÷ 2 = 2 余 0 真 - 3 3 ÷ 3 = 1 余 0 真 - 4 4 ÷ 4 = 1 余 0 真 1 5 実際、@SINCE関数と組み合わせてみると @SINCE( ID mod ID = 0 ) と、まずは書いてしまうユーザー様は多いかもしれません。 しかし、ID mod IDと記述してしまうと上方参照する際に、分子・分母のIDの値がそれぞれ参照しているレコードのIDの値になって しまいます。 うーん。 ちょっとちがう。
  10. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 14 実装編①

    ▪アプローチ① - 素数を探そう – 実装① ①. 素数かどうかを確認したい値を分子として分母の値を上方参照しながら変えていき、余りが0になるかを確認する TIPS 3 : @THIS関数を利用して分子の値を固定する 先ほどのように、そのままID mod IDと指定すると、想定していた結果になりません。 そこで@THIS関数を使って分子の値を元のレコードのIDの値を参照するようにします。 例). @THIS( ID ) mod ID ID THIS(ID) mod ID @SINCE(条件文) の戻り値 1 5 ÷ 1 = 5 余 0 真 4 2 5 ÷ 2 = 2 余 1 偽 - 3 5 ÷ 3 = 1 余 2 偽 - 4 5 ÷ 4 = 1 余 1 偽 - 5 @SINCE( THIS(ID) mod ID = 0 ) とすると、A mod B のAの部分が固定されるので、当初のやりたかった上方参照しながら余り =0を検索することができるようになります。 これだよ これ!
  11. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 15 実装編①

    ▪アプローチ① - 素数を探そう – 実装① • @SINCE関数で余りが0になるレコードを探す。 以下のようにフィールド作成ノードで余り=0となるレコードを探します。 @SINCE関数の引数となり条件文は、 @THIS( ID ) mod ID = 0 を指定しています。 ID mod ID ではなく、@THIS関数を利用している部分もポイントで、@THIS関数を利用することで分子のIDの値を元のレコー ドの値で固定できるのです。 @SINCEは、条件文が真となるレコードが何個上のレコードな のかを数値で戻します。 5であれば、1で余りが初めて0になるので4つ上のレコードで4。 6であれば、3で余りが0になるので、3つ上のレコードで3。
  12. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 16 実装編①

    ▪アプローチ② - 素数に印をつけよう – 実装② • @SINCEの戻り値がどんな値の場合に素数なのか? さて、素数か素数でないかを見分けるには、先ほどの余り=0のレコードが何個上にあったのかがポイントになります。 素数は、自身と1以外では割り切れないので、1で割った場合に初めて余りが0になることが条件となります。 となると、5なら4、3なら2、7なら6のように 自身ID – 1 レコード上で余りが0になっていることが素数である条件となります。 ID 余り=0のレコード 素数 1 2 0 2 1 1 3 2 1 4 2 0 5 4 1 ID – 1 なら 素数!
  13. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 17 実装編①

    ▪アプローチ③ - 素数の数を集計しよう – 実装③ • 集計・す・る! 最後はレコード集計ノードで集計するだけですね。
  14. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 18 実装編①

    ▪確認 - 手数は? • 3手詰めになっている。 この方法だと3手詰めなので、もう少し工夫しないといけません。 もう一手 短くしよう 3手。
  15. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 20 実装編②

    ▪2手詰めに挑戦 • 素数を探す処理と素数に目印をつける処理を一つのノードで実装します。 2詰めにするために、アプローチ①とアプローチ②を1つのノードで実装します。 ここでは、フィールド作成ノードの条件付きのオプションを利用して実装します。 ①. IFの部分の条件式 – アプローチ①とアプローチ②の合わせ技 @SINCE( @THIS(ID) mod ID = 0 ) = @THIS( ID ) – 1 [何個上のレコードで余りが0になるか] = [自身のID – 1] ②. Thenの部分 IFの式を満たせば素数なので、1 ③. Elseの部分 IFの式を満たせなければ素数ではないので、0 1 2 3 アプローチ② の部分でも @THISを活用 条件付き!
  16. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 21 実装編②

    ▪2手詰めに挑戦 • 素数の数を集計する。 レコード集計ノードで合計値を算出。アプローチ③と一緒です。 見事に2手詰め!! よくできました! 2手 ! 1 2
  17. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 22 参考

    ▪参考URL • SPSSヒモトクブログ ブログで学ぶSPSS_Modeler #12- 時系列データを扱う「シーケンス関数」をおさらいしよう!後編 https://www.ibm.com/blogs/solutions/jp-ja/learn-modeler-12/ • Qiita - 西牧さん @416nishimaki(416 NISHIMAKI) ID毎に同じ事象が起きてからの経過日数を求める(SPSS Modeler データ加工逆引き4-11) https://qiita.com/416nishimaki/items/6f2e9e401c82ea1a7519
  18. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 23 @SCINCEが何の役に立つのか?

    ・製造業 設備が最後に該当エラーを示してからの時間差を故障の特徴量に • 顧客分析 顧客の休眠や解約を示す予兆を捉える
  19. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 25 実装編③

    ▪1手詰めに挑戦 • すべての処理をPython for Sparkで実装します。 拡張ノードのPython for Sparkを利用して素数の個数を計算させます。 拡張の変換ノードだと、 後続ノードにデータを 受け渡せる!
  20. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 26 実装編③

    ▪1手詰めに挑戦 #------------------------------------------------------------------------------------# # # Python for Spark 拡張の変換 - 素数はいくつ? # #------------------------------------------------------------------------------------ ##--------------------------------------------------------- #必要なモジュールなどインポート #--------------------------------------------------------- #SPSS用ランタイム import spss.pyspark.runtime from pyspark.sql.context import SQLContext from pyspark.sql.types import IntegerType, StructField #--------------------------------------------------------- #SPSS用Sparkコンテキスト設定 #--------------------------------------------------------- #Sparkコンテキスト生成 ascontext = spss.pyspark.runtime.getContext() #SQLコンテキスト生成 sqlContext = ascontext.getSparkSQLContext() #--------------------------------------------------------- #素数判定関数 #関数:chk_prime #引数:num - 判定したい自然数 #戻り値 True : 素数 / False 素数ではない #--------------------------------------------------------- def chk_prime(num): #2より小さい場合は素数ではない if num < 2: return False #1以上の数で割り算して余りが0になれば素数ではない for i in range(2, num): if num % i == 0: return False #判定処理を抜ければ素数 return True #--------------------------------------------------------- #出力するスキーマを定義 #--------------------------------------------------------- #入力データのスキーマ読み込み inputSchema = ascontext.getSparkInputSchema() #入力スキーマを出力スキーマにコピー outputSchema = inputSchema #素数のフィールドを出力スキーマに追加 outputSchema.fields.append( StructField( '素数', IntegerType(), nullable=True ) ) outputSchema.fields.append( StructField( '素数カウント', IntegerType(), nullable=True ) ) #出力スキーマをセット ascontext.setSparkOutputSchema(outputSchema) • Python for Sparkのコード例 - 拡張の変換ノード こちらは、自分で素数判定の関数を記述しています。
  21. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 27 実装編③

    ▪1手詰めに挑戦 • Python for Sparkのコード例 - 拡張の変換ノード #--------------------------------------------------------- #素数判定処理 #--------------------------------------------------------- if not ascontext.isComputeDataModelOnly(): #入力データをデータフレームで読み込み indf = ascontext.getSparkInputData() #Pandasに変換 df = indf.toPandas() #データフレームに素数フラグ列を初期値0で追加 df['素数'] = 0 #レコード数取得 lows = len( df ) #素数カウンター count = 0 #for文で全レコードをチェック for low in range(lows): # 関数を呼び出して、Trueの場合素数 if chk_prime(df.at[low,'ID']): #素数カウントUP count = count + 1 #素数フラグ更新 df.loc[df['ID'] == df.at[low,'ID'], '素数'] = 1 #最後に素数件数セット df['素数カウント'] = count #データをID順にソート df = df.sort_values('ID') #データフレームに格納 outdf = sqlContext.createDataFrame( df, schema = outputSchema ) #データをSPSSに戻す ascontext.setSparkOutputData( outdf ) よくできました!
  22. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 28 実装編③

    ▪1手詰めに挑戦 – その2 • すべての処理をPython for Sparkで実装します。 今度は拡張の出力ノードを利用します。 拡張の出力ノードは 画面やファイルに結果を 出力できる。
  23. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 29 実装編③

    ▪1手詰めに挑戦 #------------------------------------------------------------------------------------ # # # Python for Spark 拡張の出力 - 素数はいくつ? # sympy - 1.12 / isprime 関数を利用してより簡単に # #------------------------------------------------------------------------------------ # #--------------------------------------------------------- #必要なモジュールなどインポート #--------------------------------------------------------- #SPSS用ランタイム import spss.pyspark.runtime #素数判定用 import sympy #--------------------------------------------------------- #SPSS用Sparkコンテキスト設定 #--------------------------------------------------------- #Sparkコンテキスト生成 ascontext = spss.pyspark.runtime.getContext() #入力データをデータフレームで読み込み indf = ascontext.getSparkInputData() #Pandasに変換 df = indf.toPandas() #レコード数取得 lows = len( df ) #素数カウンター count = 0 #for文で全レコードをチェック for low in range(lows): # sympyのisprime関数を呼び出して、Trueの場合素数 if sympy.isprime(df.at[low,'ID']): print( df.at[low,'ID'] ,"は素数" ) #素数カウントUP count = count + 1 else: print( df.at[low,'ID'],"は素数ではない" ) #最後に素数件数を出力 print("素数の件数は ",count) • Python for Sparkのコード例 - 拡張の出力ノード 今回は、sympyのisprime関数を利用してもっと簡単に記述しています。
  24. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 30 参考

    ▪参考URL • SPSSヒモトクブログ ブログで学ぶSPSS_Modeler #05- LightGBMや地図表示!拡張ノードでPythonやRの機能を取り込む https://www.ibm.com/blogs/solutions/jp-ja/learn-modeler-02/
  25. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 31 実装編④

    - おまけ2 SPSS独自の機能を有効活用しよう! 5
  26. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 32 実装編④

    ▪SQLプッシュバックを活用しよう。 @SINCEなどの@関数は、SQLプッシュバックが活用できないため、SQLプッシュバックを活用できるように実装を工夫してみる! SPSSはストリーム処理を自動でSQLに変換し、DBへSQLを発行します。DBはSQLに従い処理を実施して、SPSSへ結果を戻します。 SPSS Modeler の抽出・加工・結合・集計処理を SQL に自動変換する機能 SELECT AVG({fn CONVERT(T0.年齢,SQL_FLOAT)}) AS " 年齢_Mean",MIN(T0.年齢) AS "年齢_Min",MAX(T0.年齢) AS "年齢_Max",COUNT(*) AS "Record_Count" FROM dbo.customer T0,dbo.contract_sample T1 WHERE (T0.顧客コード = T1.顧客コード) 年齢_Mean 年齢_Min 年齢_Max Record_Count 45.415 10 141 1689588 変換 プッシュ バック データベース SPSS SPSS
  27. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 33 実装編④

    ▪素数を探そう – SQLプッシュバック編1 2 から √n まで以下を繰り返し、n を割った余りが 0 で無いことを確かめる(nの約数でないことを確かめる)。 約数ならnは素数ではない。 <参考 - https://algo-logic.info/is-prime/ > もし100をnとすると √100=10なので左のテーブルを作る 結果 mod ではなく rem を使う。
  28. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 34 実装編④

    ▪素数を探そう – SQLプッシュバック編2 別の実装方法でやってみる! 結果
  29. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 35 実装編④

    ▪素数を探そう – SQLプッシュバック編まとめ ユーザー入力の部分をDB入力に置き換えて実行してみると、SQLプッシュバックが機能していますね。 工夫することで、DB等の力を借りて効率よく分析をすることが可能です。ぜひ、活用してみてください!! テーブルノード以外 紫に! SQLプッシュバック!
  30. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 36 参考

    ▪参考URL • SPSSヒモトクブログ ブログで学ぶSPSS_Modeler #02- Google BigQueryでSPSS Modelerプッシュバックを実行する https://www.ibm.com/blogs/solutions/jp-ja/learn-modeler-02/ • Qiita – 河田さん @kawada2017(Kawa da) @OFFSETをSQLプッシュバックさせる(Db2版) https://qiita.com/kawada2017/items/991619a452ae20298f75
  31. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 37 弊社AITでは以下のSPSS関連セミナーを企画しております。

    ・SPSS Modelerで大規模データを分析したい! ・DX人材に求められる真のスキル ・IBM SPSS Modeler無料体験セミナー 参考:セミナーのご案内 お申込み・内容確認はこちらから!! https://www.ait-solution.jp/event/
  32. COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 38 ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したもので

    す。それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したもので はなく、またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう 努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料または その他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意 図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのよ うな結果を生むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能 であることを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要 因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能にな ると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、 売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むもので もありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。 ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、 入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがっ て、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実 例として示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。