オープンソースツール | データサイエンスのための 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は社会変革を極限まで推し進める

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

推薦する

ドローン技術が牽引する未来のスマートシティ

テクノロジーが進化し続けるにつれ、ドローンが「破壊」と同義だった時代は終わりました。現在、ドローンは...

IoTとAIが出会うとき: テクノロジーの未来

人工知能(AI)は驚異的な進歩を遂げ、一般に応用可能な技術として社会に影響を与えています。しかし、初...

最も強力なモザイク除去AIが登場。数分でモザイクのない世界に戻り、ピクセルスタイルの「Minecraft」キャラクターも復元できます。

AI の作成は複雑なプロセスかもしれませんが、AI を破壊するには 1 つのステップだけが必要です...

8つの予測分析ツールの比較

予測分析ツールとは何ですか?予測分析ツールは、人工知能とビジネスレポートを融合します。これらのツール...

宇宙インテリジェンスは産業変革に新たな推進力をもたらす。ファーウェイは能力とパートナーを開放し、ウィンウィンの時代を実現する

8月5日、ファーウェイ開発者会議2023(HDC 2023)全社スマートテクノロジーフォーラムが深セ...

清華大学の崔鵬氏:因果推論技術の最新開発動向

著者 | 真実を追求する実践主義者人工知能が発展し続けるにつれて、セキュリティとコンプライアンスの問...

ハンズフリーロボットがゴミ分別の問題解決に役立つ

地球は私たちの共通の家であり、地球環境を保護するために私たちは協力しなければなりません。したがって、...

今日のアルゴリズム: 文字列の乗算

[[421393]]この記事はWeChatの公開アカウント「3分でフロントエンドを学ぶ」から転載した...

...

オンラインゲームの依存症対策システムは「破られた」のか?記者調査:ネット上で「顔認証」サービスを提供、実名なしでゲームにログインできると主張

現代速報(記者:季宇江南)未成年者がオンラインゲームに依存しないようにするため、依存防止制度が生まれ...

データサイエンス プロジェクトに Scikit-learn Python ライブラリを使用する方法

[[246038]]柔軟で多様な Python ライブラリは、データ分析とデータマイニングのための強...

PaddlePaddleがAIの旗印を掲げ、国産のディープラーニングフレームワークが人気

[51CTO.com オリジナル記事] Baidu は 2019 年第 2 四半期の財務報告を発表し...

中国の良き叔父から12歳の開発者Jing Kunまで:DuerOSはすべての開発者に平等に力を与えます

スマート音声開発者はAIの「ゴールドラッシュ」を先導しています。 7月4日、第2回百度AI開発者会議...

推奨システムにおける自然言語処理 (NLP) の応用

[[195357]]パーソナライズされた推奨はビッグデータ時代に欠かせない技術であり、電子商取引、情...

...