平安生命保険の謝家彪氏: ビッグデータでの機械学習に Microsoft R Server を使用する

平安生命保険の謝家彪氏: ビッグデータでの機械学習に Microsoft R Server を使用する

[51CTO.comより引用] 2017年12月1日~2日、51CTO主催のWOTDグローバルソフトウェア開発技術サミットが深セン中州マリオットホテルで開催されます。このサミットのテーマはソフトウェア開発であり、数十名の専門家ゲストが多くの素晴らしい技術コンテンツを共有します。当時、平安生命のデータマイニング専門家である謝家彪氏は、プログラミング言語とフレームワークのセッションで基調講演「ビッグデータでの機械学習のためのMicrosoft Rの使用」をゲストと共有し、ビッグデータ機械学習におけるMicrosoft Rの利点を説明し、高速ロジスティック回帰、高速決定木、高速ランダムフォレストなどのアルゴリズムを使用して数千万のユーザーレコードの不正を予測し、実際のケースを通じて聴衆がMicrosoft Rを包括的に理解できるようにします。 51CTO は、皆様がこのカンファレンスにご参加いただき、テクノロジーがもたらす喜びを私たちと共有していただくことを心より願っております。

51CTO の記者は、カンファレンスで講演する謝家彪氏に独占インタビューを行いました。Microsoft R Server をビッグデータの機械学習に使用することについて、謝氏がどう考えているかを少し覗いてみます。

Microsoft R Server を選ぶ理由

R 言語の最大の利点は、強力なソフトウェア パッケージ エコシステムとチャートの利点です。同時に、CRAN には 10,000 を超える R 拡張パッケージが用意されており、あらゆる分野をカバーし、さまざまな複雑な統計に適用できます。

「R言語はデータ実践者にとって強力なツールですが、メモリベースの問題が常に嫌われてきました。近年、多くの優れた拡張パッケージによってR言語のパフォーマンスは大幅に向上しましたが、エンタープライズレベルのビッグデータマイニングに直面すると、依然として無力に思えます」と謝家彪氏は述べました。 Microsoft R Server のエンタープライズ バージョンでは、「並列アルゴリズム」と「モジュール」処理の革新によりメモリの制限が解消されます。

R言語は2015年にマイクロソフトに買収されたと報告されています。現在、Microsoft R Server は、さまざまなビッグ データ統計分析、予測モデル、機械学習機能をサポートしており、探索、分析、視覚化、モデリングなど、R ベースのデータ分析プロセスの完全なセットをサポートしています。 R と比較した Microsoft R Server の主な利点は次のとおりです。第 1 に、商業的実現可能性の点では、オープンソース ソフトウェアの導入リスクが軽減され、オープンソース製品を使用する企業の投資コストとリスクが軽減されます。第 2 に、ビッグ データ処理の点では、メモリ制限がなくなり、企業は大規模なデータ セットを処理できます。第 3 に、処理スレッドがシングル スレッド処理から並列スレッドに変更され、分析時間が大幅に短縮されます。

ビッグデータ向け機械学習における Microsoft R Server の応用例

機械学習は、データを予測できるアルゴリズムの研究と構築を探求し、大規模な計算タスクに適用されることが多いです。このインタビューで、謝家彪は主に、Microsoft R Server が以下のデータ マイニング プロセスから機械学習を実行する方法について紹介しました。

***、データのインポート

R はメモリ操作に基づいています。通常、データ処理、データ分析、データ モデリング、視覚化を実行する前に、分析するデータ セットを R に読み込む必要があります。しかし、大規模なデータセットになると、R では少々手に負えなくなります。

R Servere では、データセットを最初に .xdf 形式で保存することで上記の問題を回避できます。 Xie Jiabiao 氏は、数千万件のレコードのクレジットカード データを例に、rxImport 関数を使用して csv 形式の大規模なデータ セットを xdf ファイルとして保存する方法を紹介しました。

どうやってそれを達成するのでしょうか?関数の outFile パラメータを保存したいファイル名に設定します。特定のコード:

> infile <- file.path(readpath,"ccFraud.csv")
> ccFraud_xdf <- rxImport(inData = infile,
+ 出力ファイル = "ccFraud.xdf",
+ 上書き = TRUE)

コードはスクリーンショットに示すように実行されます。

rxGetInfo 関数はデータ構造を調べます。データが読み取られた後、rxGetInfo 関数を使用して .xdf ファイルのデータ構造を表示し (パラメーター getVarInfo を TRUE に設定)、データの最初の 10 行を表示できます (パラメーター numRows を 10 に設定)。

> rxGetInfo("ccFraud.xdf",getVarInfo = TRUE,numRows = 10)

コードの実行結果は次の図に示されています。

上記の結果から、このデータには合計 1,000 万行と 9 列があり、すべての変数の型は整数であり、最初の 10 行のデータが与えられていることがわかります。

ステップ2: データの前処理

データを分析またはモデル化する前に、元のデータ セットをモデル要件を満たすように処理する必要があります。

性別フィールドは整数になり、値 1 は女性、値 2 は男性を表します。性別フィールドは、モデリングの前に変換して再コード化する必要があります。 Xie Jiabiao はこのデータを例として使用し、stringsAsFactors、colClasse などを使用してデータ変換を実現します。

どうやってやるんですか? colInfo を使用して、変数 gender を数値から因子 (因子レベルは「F」と「M」) に変更し、colClasses を使用して変数 fraudRisk を数値から因子に変更します。

> # 変数のデータ保存タイプを変更する
> ccFraud_xdf <- rxImport(inData = infile,
+ 出力ファイル = "ccFraud.xdf",
+ colClasses = c(fraudRisk = "factor"),
+ colInfo = list("性別" = list(タイプ = "要因",
+ レベル = c("1","2"),
+ newLevels = c("F","M")))、
+ 上書き = TRUE)
> # ccFraud_xdfのデータ構造を表示
> rxGetInfo(ccFraud_xdf、getVarInfo=TRUE、numRows=5)

上記のスクリーンショットからわかるように、性別と fraudRisk 変数のタイプが整数から因子に変更され、性別の因子レベルが 1 と 2 から F と M に変更されました。

3番目は、データの記述的統計分析

記述統計とは、物事の全体的な状況や、物事同士の相関関係、カテゴリー関係などを要約して記述するために使用される統計手法です。

統計処理により、データセットの集中度と分散度を、少数の統計値を使用して簡潔に表現できます。 rxSummary 関数を使用して、.xdf ファイルに対して記述的な統計分析を実行することもできます。

数値変数の場合、変数の Mean (平均)、StdDev (標準偏差)、Min (最小値)、Max (最大値)、ValidObs (サンプル数)、MissingObs (欠損サンプル数) が返されます。

離散変数の場合、因子レベルの数、サンプル数、欠損サンプル数、および変数の各因子レベルのサンプル数が返されます。

> # rxSummary関数を使用してデータの記述統計分析を実行します
> rxSummary(~.,ccFraud_xdf) # すべての変数の統計

スクリーンショットから、creditLine 変数の平均は 9.13、標準偏差は 9.64、最小値は 1、最大値は 75、サンプル サイズは 10,000,000、欠損サンプル サイズは 0 であることがわかります。性別変数には 2 つの因子レベルがあり、F のサンプル サイズは 6,178,231、M のサンプル サイズは 3,821,769 です。

4番目はデータモデリング

データを処理および調査し、データがモデリング要件を満たしていることを確認した後、データをモデリング用のモデルにインポートし、確立されたモデルを使用して新しいデータを予測できます。

rxLogit 関数を使用して、ロジスティック回帰モデルを構築します。モデルが確立されたら、summary 関数を使用してモデル情報を表示します。具体的なコードは次のとおりです。

> # ロジスティック回帰モデル
> ccFraudglm <- rxLogit(fraudRisk ~ 性別 + カード所有者 + 残高 + numTrans
+ + numIntlTrans + creditLine、データ = ccFraud_xdf)
> # モデル結果を表示
> 要約(ccFraudglm)

スクリーンショットからは、ロジスティック回帰モデルの式における各従属変数の切片項と推定値が得られ、各変数の有意性検定のP値があることがわかります。結果から、切片項と各変数は極めて有意であることがわかります (***)。適切なモデルを取得したら、rxPredict 関数を使用して新しいデータを予測できます。

***で書かれた

Microsoft の R Server は、実際には、オープン ソース R を研究の観点ではなく産業生産の観点に移行するための取り組みです。大規模なデータ分析や運用保守の展開におけるオープン ソース R の欠点の一部を解決します。今後も、企業がビッグデータに対して機械学習を実行できるように、高度な機械学習アルゴリズムと新しいモデルを導入し続けます。

[[208014]]

著者について:
平安生命保険 - データマイニングの専門家、謝家彪。現在、中国平安生命保険株式会社でデータマイニングの専門家として勤務しており、データマイニングの実務経験が10年以上あり、R言語の上級ユーザーでもあり、中国R言語カンファレンスやビッグデータサミットで何度も基調講演を行っています。彼は「R言語とデータマイニング」、「データ実践の美しさ」、「R言語ゲームデータ分析とマイニング」などの本を執筆しています。

クーポンコード[ 2017WOTDSZ ] を使用して、WOTDグローバル ソフトウェア開発テクノロジー サミットにご参加ください 20 % オフ 残り48 時間のみ! 詳細については、 wot..com をご覧ください

[51CTO オリジナル記事、パートナーサイトに転載する場合は、元の著者とソースを 51CTO.com として明記してください]

<<:  JavaScript アルゴリズムを使用するための 6 つの実用的なヒント

>>:  概念から事例まで: 初心者向けの機械学習アルゴリズムトップ 10

ブログ    
ブログ    

推薦する

AIがサイバーセキュリティにできること、できないこと

過去数か月間にネットユーザーを最も怖がらせたものは何かと問われれば、それは以下のウイルス攻撃だろう。...

AIネットワークはこれまで考えられていたよりも攻撃に対して脆弱である

人工知能 (AI) ツールは、自動運転車から医療画像解釈まで、さまざまなアプリケーションで使用される...

AIによって次に職を奪われるのは字幕作成者でしょうか?

2016年頃から、多くのメディアが「どの仕事がAIに置き換えられるか」を予測し始めたとぼんやりと記...

...

MySQL インデックスのデータ構造とアルゴリズム: インデックスの実装

MyISAM インデックスの実装MyISAM エンジンはインデックス構造として B+Tree を使用...

...

GPT-4 Turboがリリースされ、APIがよりコスト効率化され、128Kコンテキストウィンドウが新時代をリード

1. はじめにGPT-4 をリリースしてからわずか 8 か月後、OpenAI は更新されたモデル G...

...

2022 年ソフトウェア エンジニア レポートが公開されました。最も高い年収はサイバーセキュリティ業界、機械学習はNLPに勝てない

2022 年に雇用主の間で最も人気のあるプログラミング言語はどれですか? 地域や職種によってソフトウ...

業界の未来を牽引する8つのデジタル変革トレンド

さらに、2024 年までに、産業企業は自己管理テクノロジーと再設計された運用プロセスを組み合わせるこ...

自動運転にはセンサーがいくつ必要ですか?

センサーのコストは15ドルから1ドルまで幅があり、自動車メーカーは、車両を完全に自動運転にするにはど...

5G時代の到来により、携帯電話はどのように人工知能を取り入れることができるのでしょうか?

最近、第51回国際コンシューマー・エレクトロニクス・ショーが米国ラスベガスで開催され、世界中の人工知...

ナレッジグラフは人気があります。今すぐ選んでみませんか。

[51CTO.comより引用] モバイルインターネットの発展に伴い、あらゆるものの相互接続が可能に...

マインドコントロールが現実に:話したり手を動かさずに、ただ横たわっているだけでゲームをプレイできる

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...