オープンソースツール | データサイエンスのための Python 入門

オープンソースツール | データサイエンスのための Python 入門

[[248716]]

データ サイエンスの力を活用するために高価なツールは必要ありません。これらのオープン ソース ツールを使い始めましょう。

数学やコンピューター サイエンスのバックグラウンドを持つ熟練したデータ サイエンス愛好家であっても、別の分野の専門家であっても、データ サイエンスが提供する可能性は手の届くところにあり、高価で高度に専門化されたエンタープライズ レベルのソフトウェアは必要ありません。この記事で説明するオープンソース ツールは、開始するために必要なものすべてです。

Python、その機械学習およびデータサイエンス ライブラリ (pandas、Keras、TensorFlow、scikit-learn、SciPy、NumPy など)、および多数の視覚化ライブラリ (Matplotlib、pyplot、Plotly など) は、初心者にも専門家にも同様に優れた無料のオープン ソース ソフトウェア ツールです。これらは習得が簡単で、人気があり、コミュニティによってサポートされており、データ サイエンス向けに開発された最新のテクノロジーとアルゴリズムを備えています。これらは、学習を始めるときに入手できる最高のツール セットの 1 つです。

多くの Python ライブラリは互いの上に構築されており (依存関係と呼ばれます)、その基礎となるのが NumPy ライブラリです。 NumPy はデータ サイエンス専用に設計されており、データセットの関連部分を ndarray データ型で保存するためによく使用されます。 ndarray は、リレーショナル テーブルのレコードをcvsファイルまたはその他の形式で保存したり、その逆を行ったりするのに便利なデータ型です。 scikit 関数を多次元配列に適用する場合に特に便利です。 SQL はデータベースのクエリには最適ですが、複雑でリソースを大量に消費するデータ サイエンス操作を実行する場合は、ndarray にデータを保存する方が効率的で高速です (ただし、大規模なデータセットを操作する場合は十分な RAM があることを確認してください)。知識の抽出と分析に pandas を使用する場合、pandas の DataFrame データ型と NumPy の ndarray 間のシームレスな変換により、それぞれ抽出と計算集約型の操作のための強力な組み合わせが作成されます。

簡単なデモンストレーションとして、Python シェルを起動し、ボルチモアの犯罪統計のオープン データセットを pandas DataFrame 変数に読み込み、読み込まれた DataFrame の一部を見てみましょう。

  1. >>>   import pandas as pd
  2. >>> crime_stats = pd . read_csv ( 'BPD_Arrests.csv' )
  3. >>> crime_stats . head ()

これで、SQL を使用してデータベースで実行するのと同じように、この pandas DataFrame に対してほとんどのクエリを実行できるようになりました。たとえば、 Description属性のすべての一意の値を取得するには、SQL クエリは次のようになります。

  1. $ SELECT unique (“ Description ”) from crime_stats ;

pandas DataFrame を使用して記述された同じクエリは次のようになります。

  1. >>> crime_stats [ 'Description' ]. unique ()
  2. [ 'COMMON ASSAULT' 'LARCENY' 'ROBBERY - STREET' 'AGG. ASSAULT'
  3. 'LARCENY FROM AUTO' 'HOMICIDE' 'BURGLARY' 'AUTO THEFT'
  4. 'ROBBERY - RESIDENCE' 'ROBBERY - COMMERCIAL' 'ROBBERY - CARJACKING'
  5. 'ASSAULT BY THREAT' 'SHOOTING' 'RAPE' 'ARSON' ]

NumPy 配列 (ndarray 型) を返します。

  1. >>> type ( crime_stats [ 'Description' ]. unique ())
  2. < class 'numpy.ndarray' >

次に、このデータをニューラル ネットワークに入力し、犯罪のデータ、犯罪の種類、発生場所に基づいて、使用された武器の種類をどの程度正確に予測できるかを確認しましょう。

  1. >>> from sklearn . neural_network import MLPClassifier
  2. >>> import numpy as np
  3. >>>
  4. >>> prediction = crime_stats [[' Weapon ']]
  5. >>> predictors = crime_stats [ 'CrimeTime' , ' CrimeCode ', ' Neighborhood ']
  6. >>>
  7. >>> nn_model = MLPClassifier ( solver = 'lbfgs' , alpha = 1e-5 , hidden_layer_sizes =( 5 ,
  8. 2 ), random_state = 1 )
  9. >>>
  10. >>> predict_weapon = nn_model . fit ( prediction , predictors )

学習したモデルの準備ができたので、その品質と信頼性を判断するためにいくつかのテストを行うことができます。まず、トレーニング データ セット (モデルのトレーニングに使用された元のデータセットの一部で、モデルの作成には含まれていないもの) を入力しましょう。

  1. >>> predict_weapon . predict ( training_set_weapons )
  2. array ([ 4 , 4 , 4 , ..., 0 , 4 , 4 ])

ご覧のとおり、トレーニング セット内の各レコードに対して予測された武器ごとに 1 つの数値を含むリストが返されます。武器名の代わりに数字が表示されるのは、ほとんどの分類アルゴリズムが数字で最適化されているためです。カテゴリデータの場合、属性を数値表現に変換する手法があります。この場合、使用される手法は、sklearn 前処理ライブラリのLabelEncoder関数 ( preprocessing.LabelEncoder()を使用したラベル エンコードです。データとそれに対応する数値表現を変換したり、逆変換したりできます。この例では、 LabelEncoder()inverse_transform関数を使用して、武器 0 と 4 が何であるかを確認できます。

  1. >>> preprocessing . LabelEncoder (). inverse_transform ( encoded_weapons )
  2. array ([ 'HANDS' , 'FIREARM' , 'HANDS' , ..., 'FIREARM' , 'FIREARM' , 'FIREARM' ]

これは興味深いですが、このモデルがどれだけ正確であるかを知るために、いくつかのスコアをパーセンテージで計算してみましょう。

  1. >>> nn_model . score ( X , y )
  2. 0.81999999999999995

これは、ニューラル ネットワーク モデルの精度が約 82% であることを示しています。この結果は印象的に思えるかもしれませんが、別の犯罪データセットに適用した場合の妥当性を確認することが重要です。相関、混同、マトリックスなど、これを行うための他のテストもあります。私たちのモデルは精度が高いのですが、この特定のデータセットには使用された武器としてFIREARMリストする行が不釣り合いなほど多く含まれているため、一般的な犯罪データセットにはあまり役立ちません。再トレーニングしない限り、入力データセットの分布が異なっていても、分類器はFIREARMを予測する可能性が高くなります。

データを分類する前に、データをクリーンアップし、外れ値や不正なデータを削除することが非常に重要です。前処理が適切であればあるほど、洞察はより正確になります。また、精度を高めるためにモデルや分類器に過剰なデータ (通常は 90% 以上) を入力するのは、過剰適合により正確であるように見えても効果的ではないため、お勧めできません。

Jupyter ノートブックは、コマンドラインに代わる優れたインタラクティブな代替手段です。 CLI はほとんどの用途に最適ですが、視覚化を生成するためにコード スニペットを実行する場合は、Jupyter が最適です。ターミナルよりもはるかに適切にデータをフォーマットします。

この投稿では機械学習に関する最高の無料リソースをいくつか紹介しますが、他にもガイドやチュートリアルは数多くあります。あなたの興味や趣味に応じて、利用できるオープンデータセットも多数見つかります。出発点としては、Kaggle が管理するデータセットや州政府の Web サイトで入手できるデータセットが優れたリソースとなります。

<<:  Pythonで簡単な顔認識を実装すると、私はこの星にとても似ていることが判明しました

>>:  マイクロソフトのグローバル副社長ハリー・シャム氏:AIは社会変革を極限まで推し進める

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

世界中のコードの品質が急激に低下、その原因は AI です。 1億5300万行のコードの詳細な分析レポートが公開されました

AI が世界中のコード品質を低下させています。最近、GitClear が発表した調査レポートによると...

LRU キャッシュ アルゴリズムの Java カスタム実装

背景LinkedHashMap は HashMap を継承し、内部的に removeEldestEn...

NVIDIA が Canvas を発表: AI を活用してシンプルな筆遣いをフォトリアリスティックな風景画に変換

[[407129]] 2年前、NVIDIAは、大雑把な落書きをリアルタイムでフォトリアリスティックな...

無人配送はJD.com、Alibaba、SF Expressの「新たなお気に入り」となっているが、全国的に普及するには10年かかるかもしれない!

[[222058]]無人運転車、ドローン、無人倉庫、無人駅、配達ロボットなどの「無人技術」が、電子...

日本メディア:中国は人工知能の分野で米国を追い越している

日本経済新聞は8日、中国が人工知能の分野で米国を追い越しつつあるとする記事を掲載した。データによれば...

Baidu Shen Dou: AIネイティブアプリケーションを作成するには2つのステップが重要

2024年1月10日、Honor MagicOS 8.0発表会と開発者会議において、Honor Te...

人工知能XiaoIceが繊維企業向けにオンデマンドカスタマイズを実現するAIデザインプラットフォームを開設

9月23日、2020年中国国際紡織品・アクセサリー(秋冬)博覧会で、高級生地メーカーの陸豊織染が人工...

人工知能技術の応用方向

[[395149]]人工知能を学ぶことで何ができるのでしょうか?詳しくご紹介します。 1. 製造業ス...

大規模な言語モデルはデータアシスタントとして機能し、浙江大学のデータコパイロットはデータを効率的に呼び出し、処理し、視覚化します。

金融、気象、エネルギーなどのさまざまな業界では、毎日大量の異種データが生成されます。人々は、このデー...

...

機械学習は科学プロジェクトからビジネスプランまで3段階の戦略を完了します

【51CTO.com クイック翻訳】 2015年は機械学習技術が学術分野で形を成した年でした。具体的...

AIは大学入試で高得点のエッセイを書けるようになったが、小説を書くにはまだ遠い

イベントレビュー大学入試中国語テストが終了してすぐに、大学入試作エッセイのテーマが話題になりました。...

OpenAI DALL·E 3が登場、ChatGPTと統合、生画像の効果は素晴らしい

ついにOpenAIの画像処理AIツール「DALL-Eシリーズ」が最新バージョン「DALL・E 3」に...

EleutherAIが200億パラメータのGPT風モデルを発表: GPT-3とは異なり、無料でオープン

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...