# データサイエンスの定義
|  ](../../sketchnotes/01-Definitions.png) |
| :----------------------------------------------------------------------------------------------------: |
| データサイエンスの定義 - _スケッチノート by [@nitya](https://twitter.com/nitya)_ |
---
[](https://youtu.be/beZ7Mb_oz9I)
## [講義前のクイズ](https://ff-quizzes.netlify.app/en/ds/quiz/0)
## データとは何か?
私たちの日常生活は常にデータに囲まれています。今読んでいるテキストもデータです。スマートフォンに保存されている友人の電話番号リストや、時計に表示されている現在の時刻もデータです。人間は自然にデータを操作しており、お金を数えたり、友人に手紙を書いたりします。
しかし、コンピュータの登場により、データはより重要なものとなりました。コンピュータの主な役割は計算を行うことですが、計算を行うためにはデータが必要です。そのため、コンピュータがデータをどのように保存し処理するかを理解する必要があります。
インターネットの出現により、コンピュータのデータ処理装置としての役割が増大しました。考えてみれば、私たちは今や計算そのものよりもデータ処理や通信のためにコンピュータをますます利用しています。友人にメールを書いたり、インターネットで情報を検索したりする際、私たちは基本的にデータを作成し、保存し、送信し、操作しているのです。
> 最後にコンピュータを使って実際に何かを計算したのはいつですか?
## データサイエンスとは?
[Wikipedia](https://en.wikipedia.org/wiki/Data_science)によると、**データサイエンス**は、*科学的方法を用いて構造化データや非構造化データから知識や洞察を抽出し、幅広い応用分野でデータから得られる知識や実用的な洞察を適用する科学分野*と定義されています。
この定義は、データサイエンスの以下の重要な側面を強調しています:
* データサイエンスの主な目的は、データから**知識を抽出する**こと、つまりデータを**理解**し、隠れた関係を見つけて**モデルを構築する**ことです。
* データサイエンスは**科学的方法**を使用します。例えば、確率や統計などです。実際、*データサイエンス*という用語が初めて導入されたとき、一部の人々はデータサイエンスが統計学の新しい流行の名前に過ぎないと主張しました。しかし、現在ではこの分野がはるかに広範であることが明らかになっています。
* 得られた知識は、**実用的な洞察**を生み出すために適用されるべきです。つまり、実際のビジネス状況に適用できる実践的な洞察です。
* **構造化データ**と**非構造化データ**の両方を操作できる必要があります。このコースの後半で、データの異なる種類について詳しく説明します。
* **応用分野**は重要な概念であり、データサイエンティストは、金融、医療、マーケティングなどの問題分野において、少なくともある程度の専門知識を持つ必要があります。
> データサイエンスのもう一つの重要な側面は、データがどのように収集され、保存され、コンピュータを使用して操作されるかを研究することです。統計学が数学的な基盤を提供する一方で、データサイエンスは数学的な概念を適用して実際にデータから洞察を引き出します。
[ジム・グレイ](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))に帰属する方法の一つとして、データサイエンスを科学の独立したパラダイムと見なすことができます:
* **経験的** - 主に観察や実験結果に依存する
* **理論的** - 既存の科学的知識から新しい概念が生まれる
* **計算的** - 計算実験に基づいて新しい原理を発見する
* **データ駆動型** - データの関係やパターンを発見することに基づく
## 関連する他の分野
データが広く普及しているため、データサイエンス自体も多くの他の分野に関わっています。
- データベース
-
重要な考慮事項は、データをどのように保存するかです。つまり、迅速な処理を可能にする方法で構造化する方法です。構造化データや非構造化データを保存するためのさまざまな種類のデータベースがあり、このコースで取り上げます。
- ビッグデータ
-
しばしば、非常に大量のデータを比較的単純な構造で保存し処理する必要があります。そのデータをコンピュータクラスター上で分散的に保存し、効率的に処理するための特別なアプローチやツールがあります。
- 機械学習
-
データを理解する一つの方法は、望ましい結果を予測できるモデルを構築することです。データからモデルを開発することを機械学習と呼びます。詳細を学ぶには、初心者向け機械学習カリキュラムをご覧ください。
- 人工知能
-
人工知能(AI)として知られる機械学習の分野もデータに依存しており、人間の思考プロセスを模倣する高い複雑性のモデルを構築することを含みます。AIの手法は、非構造化データ(例:自然言語)を構造化された洞察に変えることを可能にすることがよくあります。
- 可視化
-
膨大な量のデータは人間にとって理解しがたいものですが、そのデータを使って有用な可視化を作成することで、データをより理解しやすくし、いくつかの結論を導き出すことができます。そのため、情報を可視化する多くの方法を知ることが重要です。これについては、コースの第3章で取り上げます。関連する分野にはインフォグラフィックスや人間とコンピュータの相互作用全般が含まれます。
## データの種類
すでに述べたように、データは至る所に存在します。適切な方法でキャプチャするだけです!**構造化データ**と**非構造化データ**を区別することが有益です。前者は通常、表や複数の表の形式でよく構造化された形で表され、後者は単なるファイルの集合です。場合によっては、構造が大きく異なる可能性がある**半構造化データ**についても話すことがあります。
| 構造化データ | 半構造化データ | 非構造化データ |
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------- |
| 人々の名前と電話番号のリスト | リンク付きのWikipediaページ | ブリタニカ百科事典のテキスト |
| 過去20年間の建物内のすべての部屋の毎分の温度 | 著者、出版日、要約を含むJSON形式の科学論文のコレクション | 企業文書が保存されたファイル共有 |
| 建物に入るすべての人々の年齢と性別のデータ | インターネットページ | 監視カメラからの生のビデオフィード |
## データの入手先
データのソースは非常に多岐にわたり、すべてを挙げることは不可能です!しかし、いくつかの典型的なデータの入手先を挙げてみましょう:
* **構造化データ**
- **IoT(Internet of Things)**、温度センサーや圧力センサーなどのさまざまなセンサーからのデータは、多くの有用なデータを提供します。例えば、オフィスビルがIoTセンサーで装備されている場合、コストを最小化するために暖房や照明を自動的に制御することができます。
- 購入後やウェブサイト訪問後にユーザーに記入を依頼する**アンケート**。
- **行動分析**は、例えば、ユーザーがサイトをどれだけ深く利用するか、サイトを離れる典型的な理由を理解するのに役立ちます。
* **非構造化データ**
- **テキスト**は、全体的な**感情スコア**やキーワードや意味の抽出など、豊富な洞察の源となります。
- **画像**や**ビデオ**。監視カメラのビデオは道路の交通量を推定し、交通渋滞の可能性を人々に知らせるために使用できます。
- ウェブサーバーの**ログ**は、サイトのどのページが最も頻繁に訪問されているか、どれくらいの時間滞在しているかを理解するのに役立ちます。
* **半構造化データ**
- **ソーシャルネットワーク**のグラフは、ユーザーの性格や情報拡散の効果を知るための優れたデータ源となります。
- パーティーで撮影された写真の束がある場合、写真を撮った人々のグラフを作成することで**グループダイナミクス**データを抽出することができます。
さまざまなデータのソースを知ることで、データサイエンスの技術を適用して状況をよりよく理解し、ビジネスプロセスを改善するためのさまざまなシナリオを考えることができます。
## データでできること
データサイエンスでは、データの旅の以下のステップに焦点を当てます:
- 1) データ取得
-
最初のステップはデータを収集することです。多くの場合、ウェブアプリケーションからデータがデータベースに送られるような単純なプロセスですが、特別な技術が必要な場合もあります。例えば、IoTセンサーからのデータは膨大であり、IoT Hubのようなバッファリングエンドポイントを使用してすべてのデータを収集し、さらに処理するのが良い方法です。
- 2) データ保存
-
データを保存することは特にビッグデータの場合には課題となります。データを保存する方法を決定する際には、将来データをどのようにクエリしたいかを予測することが理にかなっています。データを保存する方法はいくつかあります:
- リレーショナルデータベースはテーブルのコレクションを保存し、SQLという特別な言語を使用してクエリします。通常、テーブルはスキーマと呼ばれる異なるグループに整理されます。多くの場合、元の形式からデータを変換してスキーマに適合させる必要があります。
- NoSQLデータベース(例:CosmosDB)はデータにスキーマを強制せず、階層的なJSONドキュメントやグラフなど、より複雑なデータを保存することができます。ただし、NoSQLデータベースはSQLの豊富なクエリ機能を持たず、参照整合性(テーブル間の関係を管理するルール)を強制することはできません。
- データレイクストレージは、生の非構造化形式の大規模なデータコレクションに使用されます。データレイクは通常、すべてのデータが1台のマシンに収まらず、サーバークラスターによって保存および処理されるビッグデータに使用されます。Parquetはビッグデータと組み合わせてよく使用されるデータ形式です。
- 3) データ処理
-
これはデータの旅の中で最もエキサイティングな部分であり、データを元の形式から可視化やモデルトレーニングに使用できる形式に変換することを含みます。テキストや画像などの非構造化データを扱う場合、AI技術を使用してデータから特徴を抽出し、構造化形式に変換する必要があるかもしれません。
- 4) 可視化 / 人間の洞察
-
データを理解するためには、しばしば可視化が必要です。さまざまな可視化技術をツールボックスに持つことで、洞察を得るための適切な視点を見つけることができます。データサイエンティストはデータを「遊びながら」、何度も可視化して関係性を探ることがよくあります。また、統計技術を使用して仮説を検証したり、データ間の相関関係を証明することもあります。
- 5) 予測モデルのトレーニング
-
データサイエンスの究極の目標は、データに基づいて意思決定を行うことができるようになることです。そのために、機械学習の技術を使用して予測モデルを構築することができます。その後、同様の構造を持つ新しいデータセットを使用して予測を行うことができます。
もちろん、実際のデータによっては、いくつかのステップが欠けている場合(例:すでにデータがデータベースにある場合やモデルトレーニングが必要ない場合)や、いくつかのステップが何度も繰り返される場合(例:データ処理)があるかもしれません。
## デジタル化とデジタルトランスフォーメーション
過去10年間、多くの企業がビジネス意思決定におけるデータの重要性を理解し始めました。ビジネス運営にデータサイエンスの原則を適用するには、まずデータを収集する必要があります。つまり、ビジネスプロセスをデジタル形式に変換する必要があります。これを**デジタル化**と呼びます。このデータにデータサイエンス技術を適用して意思決定を導くことで、生産性の大幅な向上(またはビジネスの方向転換)を実現することができ、これを**デジタルトランスフォーメーション**と呼びます。
例を考えてみましょう。オンラインで学生に提供するデータサイエンスコース(このコースのようなもの)があり、データサイエンスを使用してそれを改善したいとします。どのようにすればよいでしょうか?
まず、「何をデジタル化できるか?」と自問することから始
> このアプローチは理想的ではないと主張するかもしれません。なぜなら、モジュールの長さが異なる場合があるからです。モジュールの長さ(文字数)で時間を割り、それらの値を比較する方が公平かもしれません。
複数選択式テストの結果を分析し始めると、学生が理解に苦労している概念を特定し、その情報を使って内容を改善することができます。そのためには、各質問が特定の概念や知識の塊に対応するようにテストを設計する必要があります。
さらに複雑にしたい場合は、各モジュールにかかる時間を学生の年齢層と比較してプロットすることができます。ある年齢層ではモジュールを完了するのに不適切に長い時間がかかることや、モジュールを完了する前に学生が離脱してしまうことが分かるかもしれません。この情報を活用してモジュールの年齢推奨を提供し、誤った期待による不満を最小限に抑えることができます。
## 🚀 チャレンジ
このチャレンジでは、テキストを調べることでデータサイエンス分野に関連する概念を見つけることを試みます。データサイエンスに関するWikipediaの記事を取得し、テキストを処理した後、以下のようなワードクラウドを作成します:

コードを読むには[`notebook.ipynb`](../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore')を訪問してください。また、コードを実行して、リアルタイムでデータ変換がどのように行われるか確認することもできます。
> Jupyter Notebookでコードを実行する方法が分からない場合は、[この記事](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)を参照してください。
## [講義後のクイズ](https://ff-quizzes.netlify.app/en/ds/quiz/1)
## 課題
* **タスク 1**: 上記のコードを修正して、**ビッグデータ**と**機械学習**の分野に関連する概念を見つけてください。
* **タスク 2**: [データサイエンスのシナリオについて考える](assignment.md)
## クレジット
このレッスンは[ドミトリー・ソシュニコフ](http://soshnikov.com)によって♥️を込めて作成されました。
---
**免責事項**:
この文書はAI翻訳サービス[Co-op Translator](https://github.com/Azure/co-op-translator)を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された文書を正式な情報源としてご参照ください。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤認について、当方は一切の責任を負いません。