データサイエンスでは、アルゴリズムとデータ構造によってデータ収集の機能とストレージが形成されます。これらの構造を学ぶ際にはコーディングと応用数学の知識が役立ちますが、実際にはまったくの初心者用の本もたくさんあります。そのような本の多くでは、学習を促進するために特定の構造に焦点を当て、実際の例とコードを使用して、機械学習の背後にある理論をサポートします。まずはデータサイエンスの基本を理解し、その次のステップが学習アルゴリズムとなります。
この記事では、初心者から中級、そして上級者までのスキルレベルに対応した、アルゴリズムおよび構造に関するさまざまな本について紹介します。
1.『Introduction to Algorithms』、Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest、Clifford Stein 共著
著者: Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest、および Clifford Stein
Web サイト: Amazon
この『Introduction to Algorithms』は、アルゴリズム全体の包括的な概要およびガイドを提供します。理論と実践を広範に取り扱っている 1,000 ページの本であり、現代のアルゴリズムに関する百科事典のような参考資料となります。
非常に実用的な本であり、問題を図や証拠で示し、アルゴリズムを実装し、結果の背後にある理論を分析します。「Introduction (入門)」というタイトルは、数学とデータ構造に関してある程度の知識があることを想定していますが、関心が高い読者にとってはじっくりと取り組める内容がたくさん収録されています。
2.『Algorithms Unlocked』、Thomas H. Cormen 著
著者: Thomas H. Cormen
Web サイト: Amazon
Thomas Cormen 氏によるこの『Algorithms Unlocked』は、テクノロジーの謎を解き明かし、その内部の仕組みの背後にある秘密を明らかにします。私たちは、GPS による自動化された道案内やインターネット暗号化など、多くのことを当然と思っています。これらはすべて応用アルゴリズムを使用して運用されています。
この本では、コンピューターがどのようにアルゴリズムを使用して、私たちが日々の生活で目にしている多くのテクノロジータスクを作成し、問題を解決しているかについて説明しています。また、コンピューターアルゴリズムとは何かについて詳細に考察し、検索、並べ替え、グラフ作成などのシンプルなタスクを実行するためにアルゴリズムがどのように使用されているかを教えてくれます。これは、現代の世界でアルゴリズムがどのように機能しているかについて関心のある読者向けの資料です。
3.『The Algorithm Design Manual』、Steven S. Skiena 著
著者: Steven S. Skiena
Web サイト: Amazon
この『The Algorithm Design Manual』は、自分でゼロからアルゴリズムを作成するための入門書です。アルゴリズム設計の背景にある理論だけでなく、例や実践的な演習も使用して参考となる資料を提供しています。Skiena 氏は、アルゴリズムで使用されているさまざまな異なるプログラミング言語へと簡単に移行できるように、「擬似コード」を紹介しています。また、グラフ理論、計算幾何学、マルチスレッドアルゴリズムなど、現代の多種多様なアルゴリズムを取り上げています。
この本は 2 つのセクション、「テクニック」と「リソース」に分かれており、最初の「テクニック」では、アルゴリズムの設計と分析の方法を指導し、2つ目の「リソース」は、アルゴリズムに関する最も一般的な 75 の問題や、C/C++ および Java での実装など、必要に応じて確認できる膨大な参照用リソースとなっています。
4.『Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles』、Narasimha Karumanchi 著
著者: Narasimha Karumanchi
Web サイト: Amazon
この本は、面接、試験、認定などのテストのために、該当分野の知識をさらに高めるためのガイドとなります。よくあるアルゴリズムの問題とそれらの解決方法についても考察しています。また、データ構造とアルゴリズムの仕組みの基本を概説し、どのように記述するかについても説明しています。
実習を完了するためには、数学と C/C++ コードに関する知識が必要です。20 章で構成される 400 ページ超のこの本は、基本的に、アルゴリズムに関する問題を解決するためのワークブックです。
5.『Grokking Algorithms: An illustrated guide for programmers and other curious people』、Aditya Bhargava 著
著者: Aditya Bhargava
Web サイト: Amazon
アルゴリズムについてもう少し学びたいプログラマーのための分かりやすい本です。直面する可能性のある一般的な問題の解決方法を示しています。並べ替えや検索など、より一般的で実用的なアルゴリズムから、データ圧縮や人口知能についてのより難しい問題まで、いくつかのトピックをカバーしています。
アルゴリズムに関するイラストは学習者に分かりやすいビジュアルとなり、ウォークスルーでは各プロセスを 1 つ 1 つ説明しています。各例には、Python によるコードサンプルが含まれています。まったくの初心者を想定しているわけではなく、プログラミングになじみのある読者の再学習用教材となります。
6.『Algorithms』、Robert Sedgewick、Kevin Wayne 共著
著者: Robert Sedgewick および Kevin Wayne
Web サイト: Amazon
『Algorithms』というシンプルなタイトルですが、中身は充実しています。簡潔なネーミングを裏切るような深い内容となっています。アルゴリズムとデータ構造を徹底的に考察したこのテキストは、教育機関で使用する包括的なリソースとなります。ソースコードを利用できるオンラインポータルも含まれています。
さまざまなデータタイプやそれらの並べ替えおよび分析方法について説明しており、検索、並べ替え、処理に役立つ重要なアルゴリズムに焦点を当てています。実践的な練習用として、付属のウェブサイトに実習、テストデータ、ビジュアライゼーション、完全な Java コードが含まれています。大学などの環境で使用されるアカデミックな本であり、この主題の学習を始める読者の教科書として最適です。
7.『Advanced Data Structures』、Peter Brass 著
著者: Peter Brass
Web サイト: Amazon
この『Advanced Data Structures』は、アルゴリズムと検索の最適化にとって、データ構造が重要であることを強調しています。初心者向けではなく、大学院レベルの高度な読者およびデータサイエンティスト実務者向けのテキストであり、データ分析におけるデータ保存の複雑さについて詳しく説明しています。
さまざまなデータ構造とバリエーションを詳細に説明し、スタック、キュー、ハッシュ表、探索木などについて考察しています。また、区間木など、より専門的な構造についても言及しています。C 言語による実際のコード例や参照資料も含まれており、学習に役立ちます。この本はデータ保存の複雑さに関するテキストであり、詳細で包括的な中身の濃い本となっています。
8.『Automate This: How Algorithms Came To Rule Our World』、Christopher Steiner 著
著者: Christopher Steiner
Web サイト: Chris Steiner | Amazon
この本は、アルゴリズムに関するほとんどの本のような参考書や入門書ではありません。私たちの生活においてアルゴリズムはより重要になってきており、手動で実行されていた熟練のタスクが最終的には自動化できるようになるまでを歴史的に見る内容になっています。
今やアルゴリズムは、車の運転アシストや、エンターテイメントメディアの強化、人の振る舞いの予測などに利用されています。アルゴリズムの秘伝を文化的な文脈で分かりやすく批評、解説した本となっています。
免責事項: Tableau は、この Web ページに記載されているいかなる製品または意見も正式に承認しているわけではないため、このページはどのアフィリエイトリンクプログラムにも関与していません。この記事は純粋に教育目的を意図しており、製品および出版物に関する上記の情報は、読者が情報に基づいて自身の意思決定を行えるようにするために提供されています。