【Python、英文記事引用】Top 10 Python Machine Learning Libraries in 2023

:::note info
気になる英文記事を引用して記事を書いてみました。
:::

引用元の記事は、タイトルが「Top 10 Python Machine Learning Libraries in 2022」とありましたので、引用しながら来年の機械学習のライブラリについて考えてみます。

>With a Python-based machine learning library, developers and data science professionals can accomplish complex tasks without rewriting lengthy pieces of code. In simple words, this machine learning library offers an easier way to define, build, and deploy machine learning models with the help of pre-built library components that simplify machine learning and are developer-friendly.


>Python is one of the most popular and fastest-growing programming languages that outperforms several other languages such as PHP, C#, R language, JavaScript, and Java. According to a Feb. 2022 report published by Statista, Python is the third (48.24%) most commonly used programming language by developers across the globe.

>Owing to its simplicity and readability, programmers prefer Python over other languages. Moreover, when engineers intend to develop intelligent algorithms that machines can interpret, Python takes the top spot explicitly.

上記の部分は、記事の序論の一部を抜粋しました。箇条書きで要約すると、

- Pythonベースの機械学習ライブラリにより、長いコードを書き換えることなく複雑なタスクを達成することができる
- Pythonは、PHP、C#、R、JavaScript、Javaなど他のいくつかの言語を凌駕する、最も人気があり急成長しているプログラミング言語の1つである
- 2022年2月にStatistaが発表したレポートによると、Pythonは世界中の開発者が最もよく使うプログラミング言語の第3位（48.24％）となっている
- そのシンプルさと読みやすさから、プログラマーは他の言語よりもPythonを好んで使用している

となりますでしょうか。
シンプルなイントロとなっています。引き続き、引用記事を見ていきます。

>Key benefits of using a Python machine learning library
Here are the key benefits of using a Python machine learning library, making it a prevalent choice.
>1. Simple to learn: The Python language offers descriptive and interactive code that is easy to learn, interpret, and understand. The understandable language makes it suitable for beginners. Moreover, the simplicity of the Python library allows programmers to design reliable systems.
>2. Platform-independent: Python is a platform-independent language. This implies Python can run programs on platforms such as Linux, Windows, and macOS without requiring a Python interpreter on respective operating systems.
>3. Free and open-source: Python libraries are free and open-source. This makes them open to constant improvements and updates.
>4. Exhaustive libraries: A python library provides a wide array of libraries that allows users to address every existing problem.
>5. Community support: A Python library is easy to implement and integrate with other tools. Moreover, the library is accessible to any individual and does not require particular skills. The community makes Python library implementation easier for beginners as the members within the community share, discuss, and resolve issues quickly.
>6. Reduces coding & debugging times: The Python library enhances the overall productivity of application development as it uses pre-compiled codes, thereby reducing coding and debugging times significantly.
>7. Applications: Python libraries find applications in soft computing and natural language processing.
>8. C and C++ integration: Python libraries are easy to integrate with other language modules such as C and C++.

上記の部分は、Pythonの機械学習ライブラリを利用する主なメリットを記しています。
具体的に以下の8つのメリットを示されております。

- 学習が簡単
- プラットフォーム非依存である
- フリー＆オープンソースである
- 網羅的なライブラリを有する
- コミュニティによるサポートがある
- コーディングとデバッグの時間を短縮できる
- ソフトコンピューティングや自然言語処理に応用できる
- CやC++などの他の言語モジュールとの統合が容易である

以降、トップ10に関する本論が始まります。
トップ10は以下の10項目とのことでした。

**1. TensorFlow**
**2. PyTorch**
**3. Keras**
**4. Orange3**
**5. NumPy (Numerical Python)**
**6. SciPy**
**7. Scikit-Learn**
**8. Pandas**
**9. Matplotlib**
**10. Theano**

Pythonで開発したことがある人にとっては、馴染みのあるものも多いのではないでしょうか。
各項目の説明が少々長いので、そのまま引用するのではなく、内容をかいつまんで箇条書きにて記します。

## 1. TensorFlow
- 数値計算に使用されるフリーでオープンソースのライブラリ
- ベイズモデルなどの確率的手法をサポートしている
- 多くのプラットフォームで機械学習モデルの実行を可能にしている
- タイムリーな新機能リリースによる、頻繁なアップデートが行われている

## 2. PyTorch
- 自然言語処理アプリケーション等に使用される、フリーでオープンソースのライブラリ
- 大容量のデータを扱える
- 特定のハードウェアやソフトウェアを必要としない
- Amazon Web Services、Alibaba Cloud、Microsoft Azure、Google Cloudなどのクラウドプラットフォームで利用できるため、スケーリングが容易

## 3. Keras
- ニューラルネットワークの計算に適した、オープンソースのスタンドアローンPython MLライブラリ
- TensorFlowやTheanoといった既知のフレームワークの上で動作させることができる
- Uber、Netflix、Square、Yelpなどの企業は、画像やテキストデータの管理に関して、他のライブラリよりもKerasを好んで使用している

## 4. Orange3
- データマイニング、データ可視化ツール
- アルゴリズムのテストをサポートするツールセットを備えており、より生物医学や情報学に関連したライブラリ
- 教育のカリキュラムの一部となっている

## 5. NumPy (Numerical Python)
- このライブラリには多くの数学関数があり、多次元配列や行列の計算が可能
- NumPyライブラリにより、開発者は実生活のシナリオにリアルタイムで対応できる知的システムを設計・開発することができる

## 6. SciPy
- NumPyライブラリと同様、主に数学的な計算を含む科学的および工学的なタスクに適している
- SciPyライブラリは、画像操作のタスクもサポートしている
- 数値補間、積分、線形代数、統計など、複雑な数学的問題の処理に特化
- NumPyとSciPyは科学的、数学的なシナリオを扱うために設計されているので、この2つのライブラリの組み合わせは必然的に計算を向上させることができる

## 7. Scikit-Learn
- フリーの機械学習ライブラリで、効率的なデータマイニングと分析ツールである
- Scikit-LearnライブラリはGitHubで人気があり、オンライン音楽ストリーミング（Spotify）、宿泊予約（Booking.com）、出会い系サイト（OkCupid）など様々なプラットフォームで企業により利用されている

## 8. Pandas
- Pandasは主にデータ操作や解析を行うために設計されている
- データ抽出や準備作業に役立つ様々なデータ構造、関数、コンポーネントを提供している
- データフレームを使った機械学習にも利用されている

## 9. Matplotlib
- Pandasライブラリと同様に、Matplolibは機械学習に特化したライブラリではない
- 2Dグラフやプロットを作成する際に、線のスタイルやフォントを管理する機能を提供する
- ライブラリを利用することで、様々な2次元図、3次元図、ヒストグラムなどの作図が可能になる

## 10. Theano
- 数学モデルの操作、評価、最適化を行う
- パフォーマンスを低下させることなく、同時計算を処理することができる
- 不安定な数式を処理し、安定した数式に置き換えることができる

私は機械学習にあまり詳しくないので、使ったことのないライブラリもありましたが、`NumPy`や`Matplotlib`は使わない日がないくらいこれらのライブラリに助けれられています。個人的には、必要とされるライブラリは、独創的な機能よりも安定性（アップデートが頻繁に行われる、機能が使いやすい等）を重視したものであると思いますし、2023年においても同様ではないかと考えています。

# 引用文献
- 記事タイトル：Top 10 Python Machine Learning Libraries in 2022
- 引用元URL：https://www.spiceworks.com/tech/artificial-intelligence/articles/top-python-machine-learning-libraries/amp/
- 最終アクセス：2022.12.22