[](https://youtu.be/beZ7Mb_oz9I)
[](https://youtu.be/beZ7Mb_oz9I)
## [שאלון לפני ההרצאה](https://ff-quizzes.netlify.app/en/ds/quiz/0)
@ -144,7 +144,7 @@
באתגר הזה, ננסה למצוא מושגים רלוונטיים לתחום מדעי הנתונים על ידי התבוננות בטקסטים. ניקח מאמר מוויקיפדיה על מדעי הנתונים, נוריד ונעבד את הטקסט, ואז נבנה ענן מילים כמו זה:


בקרו ב-[`notebook.ipynb`](../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') כדי לקרוא את הקוד. תוכלו גם להריץ את הקוד ולראות כיצד הוא מבצע את כל השינויים בנתונים בזמן אמת.
"בדוגמה זו, נעשה תרגיל פשוט שמכסה את כל השלבים בתהליך המסורתי של מדע הנתונים. אין צורך לכתוב קוד, אפשר פשוט ללחוץ על התאים למטה כדי להפעיל אותם ולצפות בתוצאה. כאתגר, מומלץ לנסות את הקוד הזה עם נתונים שונים.\n",
"בדוגמה הזו, נעשה תרגיל פשוט הכולל את כל שלבי התהליך המסורתי במדעי הנתונים. אין צורך לכתוב קוד, אפשר פשוט ללחוץ על התאים למטה כדי להריץ אותם ולהתבונן בתוצאה. באתגר, מומלץ לנסות את הקוד עם נתונים שונים.\n",
"\n",
"## מטרה\n",
"\n",
"בשיעור זה, דיברנו על מושגים שונים הקשורים למדע הנתונים. בואו ננסה לגלות מושגים נוספים על ידי ביצוע **כריית טקסט**. נתחיל עם טקסט על מדע הנתונים, נחלץ ממנו מילות מפתח, ואז ננסה להמחיש את התוצאה.\n",
"בשיעור הזה, דיברנו על מושגים שונים הקשורים למדעי הנתונים. בואו ננסה לגלות מושגים נוספים קשורים על ידי ביצוע **כריית טקסט**. נתחיל בטקסט על מדעי הנתונים, נחלץ ממנו מילות מפתח, ואז ננסה להמחיש את התוצאה.\n",
"\n",
"כטקסט, אשתמש בדף על מדע הנתונים מוויקיפדיה:\n"
"כטקסט, אשתמש בדף על מדעי הנתונים מויקיפדיה:\n"
],
"metadata": {}
},
@ -32,9 +32,9 @@
{
"cell_type": "markdown",
"source": [
"## שלב 1: השגת הנתונים\n",
"## שלב 1: קבלת הנתונים\n",
"\n",
"השלב הראשון בכל תהליך מדעי נתונים הוא השגת הנתונים. נשתמש בספריית `requests` כדי לעשות זאת:\n"
"השלב הראשון בכל תהליך מדעי הנתונים הוא קבלת הנתונים. נשתמש בספריית `requests` כדי לעשות זאת:\n"
],
"metadata": {}
},
@ -66,45 +66,43 @@
{
"cell_type": "markdown",
"source": [
"## שלב 2: עיבוד הנתונים\n",
"## שלב 2: המרת הנתונים\n",
"\n",
"השלב הבא הוא להמיר את הנתונים לצורה המתאימה לעיבוד. במקרה שלנו, הורדנו את קוד המקור של ה-HTML מהדף, ואנו צריכים להמיר אותו לטקסט פשוט.\n",
"השלב הבא הוא להמיר את הנתונים לצורה המתאימה לעיבוד. במקרה שלנו, הורדנו קוד מקור HTML מהעמוד, ואנו צריכים להמיר אותו לטקסט רגיל.\n",
"\n",
"ישנן דרכים רבות לבצע זאת. אנו נשתמש באובייקט הפשוט ביותר המובנה ב-[HTMLParser](https://docs.python.org/3/library/html.parser.html) של פייתון. עלינו לרשת את המחלקה `HTMLParser` ולהגדיר את הקוד שיאסוף את כל הטקסט שנמצא בתוך תגיות ה-HTML, למעט תגיות `<script>` ו-`<style>`.\n"
"ישנן דרכים רבות לעשות זאת. נשתמש ב-[BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/), ספרייה פופולרית בפייתון לניתוח HTML. BeautifulSoup מאפשרת לנו למקד אלמנטים ספציפיים ב-HTML, כדי שנוכל להתמקד בתוכן המאמר הראשי מוויקיפדיה ולהפחית כמה תפריטי ניווט, סרגלי צד, תחתיות ותוכן לא רלוונטי אחר (אם כי ייתכן שעדיין יישאר טקסט בסיסי).\n"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"ראשית, אנחנו צריכים להתקין את ספריית BeautifulSoup לפירוס HTML:\n"
"from bs4 import BeautifulSoup\r\n\r\n# Parse the HTML content\r\nsoup = BeautifulSoup(text, 'html.parser')\r\n\r\n# Extract only the main article content from Wikipedia\r\n# Wikipedia uses 'mw-parser-output' class for the main article content\r\ncontent = soup.find('div', class_='mw-parser-output')\r\n\r\ndef clean_wikipedia_content(content_node):\r\n \"\"\"Remove common non-article elements from a Wikipedia content node.\"\"\"\r\n # Strip jump links, navboxes, reference lists/superscripts, edit sections, TOC, sidebars, etc.\r\n selectors = [\r\n '.mw-jump-link',\r\n '.navbox',\r\n '.reflist',\r\n 'sup.reference',\r\n '.mw-editsection',\r\n '.hatnote',\r\n '.metadata',\r\n '.infobox',\r\n '#toc',\r\n '.toc',\r\n '.sidebar',\r\n ]\r\n for selector in selectors:\r\n for el in content_node.select(selector):\r\n el.decompose()\r\n\r\nif content:\r\n # Clean the content node to better approximate article text only.\r\n clean_wikipedia_content(content)\r\n text = content.get_text(separator=' ', strip=True)\r\n print(text[:1000])\r\nelse:\r\n print(\"Could not find main content. Using full page text.\")\r\n text = soup.get_text(separator=' ', strip=True)\r\n print(text[:1000])"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" Data science - Wikipedia Data science From Wikipedia, the free encyclopedia Jump to navigation Jump to search Interdisciplinary field of study focused on deriving knowledge and insights from data Not to be confused with information science . The existence of Comet NEOWISE (here depicted as a series of red dots) was discovered by analyzing astronomical survey data acquired by a space telescope , the Wide-field Infrared Survey Explorer . Part of a series on Machine learning and data mining Problems Classification Clustering Regression Anomaly detection AutoML Association rules Reinforcement learning Structured prediction Feature engineering Feature learning Online learning Semi-supervised learning Unsupervised learning Learning to rank Grammar induction Supervised learning ( classification • regression ) Decision trees Ensembles Bagging Boosting Random forest k -NN Linear regression Naive Bayes Artificial neural networks Logistic regression Perceptron Relevance vector machine \n"
"Data science From Wikipedia, the free encyclopedia Interdisciplinary field of study focused on deriving knowledge and insights from data Data science is an interdisciplinary academic field that uses statistics, scientific computing, scientific methods, processes, algorithms and systems to extract or extrapolate knowledge and insights from noisy, structured, and unstructured data. Data science also integrates domain knowledge from the underlying application domain. Data science is multifaceted and can be described as a science, a research paradigm, a research method, a discipline, a workflow, and a profession.\n"
]
}
],
@ -115,9 +113,9 @@
"source": [
"## שלב 3: קבלת תובנות\n",
"\n",
"השלב החשוב ביותר הוא להפוך את הנתונים שלנו לצורה שממנה נוכל להפיק תובנות. במקרה שלנו, אנחנו רוצים לחלץ מילות מפתח מהטקסט ולראות אילו מילות מפתח הן משמעותיות יותר.\n",
"השלב החשוב ביותר הוא להפוך את הנתונים שלנו לצורה שממנה נוכל להפיק תובנות. במקרה שלנו, אנו רוצים לחלץ מילות מפתח מהטקסט, ולראות אילו מילות מפתח הן משמעותיות יותר.\n",
"\n",
"נשתמש בספריית Python בשם [RAKE](https://github.com/aneesha/RAKE) לחילוץ מילות מפתח. קודם כל, נתקין את הספרייה הזו אם היא לא מותקנת:\n"
"נשתמש בספריית פייתון שנקראת [RAKE](https://github.com/aneesha/RAKE) לחילוץ מילות מפתח. תחילה, נקין את הספרייה הזו למקרה שהיא לא קיימת:\n"
],
"metadata": {}
},
@ -162,7 +160,7 @@
{
"cell_type": "markdown",
"source": [
"הפונקציונליות העיקרית זמינה מאובייקט `Rake`, אותו ניתן להתאים באמצעות כמה פרמטרים. במקרה שלנו, נגדיר את האורך המינימלי של מילת מפתח ל-5 תווים, את התדירות המינימלית של מילת מפתח במסמך ל-3, ואת המספר המרבי של מילים במילת מפתח - ל-2. אתם מוזמנים להתנסות בערכים אחרים ולצפות בתוצאה.\n"
"הפונקציונליות הראשית זמינה מהאובייקט `Rake`, אותו ניתן להתאים באמצעות כמה פרמטרים. במקרה שלנו, נגדיר את האורך המינימלי של מילות מפתח ל-5 תווים, את התדירות המינימלית של מילות מפתח במסמך ל-3, ואת המספר המקסימלי של מילים במילת מפתח ל-2. ניתן לשחק עם ערכים אחרים ולבחון את התוצאה.\n"
],
"metadata": {}
},
@ -211,11 +209,12 @@
{
"cell_type": "markdown",
"source": [
"קיבלנו רשימת מונחים יחד עם דרגת החשיבות שלהם. כפי שניתן לראות, התחומים הרלוונטיים ביותר, כמו למידת מכונה וביג דאטה, מופיעים בראש הרשימה.\n",
"\n",
"## שלב 4: הצגת התוצאה בצורה חזותית\n",
"קיבלנו רשימת מונחים יחד עם דרגת החשיבות המשויכת להם. כפי שאתה יכול לראות, התחומים הרלוונטיים ביותר, כמו למידת מכונה ו-big data, מופיעים ברשימה במקומות העליונים.\n",
"\n",
"אנשים מבינים נתונים בצורה הטובה ביותר כשהם מוצגים באופן חזותי. לכן, לעיתים קרובות יש היגיון להציג את הנתונים בצורה גרפית כדי להפיק תובנות. ניתן להשתמש בספריית `matplotlib` בפייתון כדי לשרטט התפלגות פשוטה של מילות המפתח עם מידת הרלוונטיות שלהן:\n"
"## שלב 4: המחשת התוצאה\n",
"\n",
"אנשים יכולים לפרש את הנתונים בצורה הטובה ביותר בצורה ויזואלית. לכן לעיתים קרובות יש יתרון להמחיש את הנתונים כדי להפיק תובנות מסוימות. אנו יכולים להשתמש בספריית `matplotlib` בפייתון כדי לשרטט התפלגות פשוטה של מילות המפתח עם הרלוונטיות שלהן:\n"
],
"metadata": {}
},
@ -252,7 +251,7 @@
{
"cell_type": "markdown",
"source": [
"יש, עם זאת, דרך אפילו טובה יותר להמחיש תדירות מילים - באמצעות **ענן מילים**. נצטרך להתקין ספרייה נוספת כדי ליצור את ענן המילים מרשימת מילות המפתח שלנו.\n"
"עם זאת, יש דרך אפילו טובה יותר להמחיש את תדירויות המילים - באמצעות **ענן מילים**. נצטרך להתקין ספרייה נוספת כדי לצייר את ענן המילים מרשימת מילות המפתח שלנו.\n"
],
"metadata": {}
},
@ -268,7 +267,7 @@
{
"cell_type": "markdown",
"source": [
"אובייקט `WordCloud` אחראי על קבלת טקסט מקורי או רשימה מחושבת מראש של מילים עם התדירויות שלהן, ומחזיר תמונה שניתן להציג באמצעות `matplotlib`:\n"
"`WordCloud` האובייקט אחראי על לקיחת טקסט מקורי, או רשימה מחושבת מראש של מילים עם התדירויות שלהן, ומחזיר תמונה, שניתן לאחר מכן להציג באמצעות `matplotlib`:\n"
],
"metadata": {}
},
@ -312,7 +311,7 @@
{
"cell_type": "markdown",
"source": [
"אנחנו יכולים גם להעביר את הטקסט המקורי ל-`WordCloud` - בואו נראה אם אנחנו מצליחים לקבל תוצאה דומה:\n"
"אנחנו יכולים גם להעביר את הטקסט המקורי ל-`WordCloud` - בואו נראה אם נצליח לקבל תוצאה דומה:\n"
],
"metadata": {}
},
@ -372,9 +371,9 @@
{
"cell_type": "markdown",
"source": [
"ניתן לראות שהענן מילים נראה עכשיו מרשים יותר, אבל הוא גם מכיל הרבה רעש (לדוגמה, מילים לא קשורות כמו `Retrieved on`). בנוסף, אנחנו מקבלים פחות מילות מפתח שמורכבות משתי מילים, כמו *data scientist* או *computer science*. הסיבה לכך היא שאלגוריתם RAKE עושה עבודה טובה יותר בבחירת מילות מפתח איכותיות מתוך הטקסט. הדוגמה הזו ממחישה את החשיבות של עיבוד וניקוי נתונים, מכיוון שתמונה ברורה בסוף תאפשר לנו לקבל החלטות טובות יותר.\n",
"אפשר לראות שכעת הענן מילים נראה מרשים יותר, אך הוא גם מכיל הרבה רעש (למשל מילים לא קשורות כמו `Retrieved on`). בנוסף, אנו מקבלים פחות מילות מפתח שמורכבות משתי מילים, כגון *data scientist*, או *computer science*. זאת משום שאלגוריתם RAKE עושה עבודה טובה בהרבה בבחירת מילות מפתח טובות מהטקסט. הדוגמה הזו ממחישה את החשיבות של קדם-עיבוד וניקוי נתונים, כיוון שתמונה ברורה בסוף תאפשר לנו לקבל החלטות טובות יותר.\n",
"\n",
"בתרגיל הזה עברנו תהליך פשוט של חילוץ משמעות מטקסט של ויקיפדיה, בצורה של מילות מפתח וענן מילים. הדוגמה הזו די פשוטה, אבל היא מדגימה היטב את כל השלבים הטיפוסיים שמדען נתונים עובר בעבודה עם נתונים, החל מרכישת הנתונים ועד ויזואליזציה.\n",
"באימון זה עברנו תהליך פשוט של חילוץ משמעות מטקסט מוויקיפדיה, בצורה של מילות מפתח וענן מילים. הדוגמה הזו פשוטה למדי, אך היא מדגימה היטב את כל השלבים הטיפוסיים שנתוני מדען נתונים יעבור בעת עבודה עם נתונים, החל מהשגת הנתונים ועד להמחשה חזותית.\n",
"\n",
"בקורס שלנו נדון בכל השלבים הללו בפירוט.\n"
],
@ -394,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**כתב ויתור**: \nמסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**כתב ויתור**:\nמסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לזכור כי תרגומים אוטומטיים עלולים לכלול שגיאות או אי-דיוקים. המסמך המקורי בשפתו המקורית נחשב למקור המוסמך. למידע קריטי מומלץ להיעזר בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"> *במחברת זו, אנו מתנסים בשימוש בכתובת URL שונה - מאמר ויקיפדיה על למידת מכונה. ניתן לראות שבניגוד למדע הנתונים, מאמר זה מכיל הרבה מונחים, מה שהופך את הניתוח לבעייתי יותר. עלינו למצוא דרך אחרת לנקות את הנתונים לאחר חילוץ מילות המפתח, כדי להיפטר משילובי מילים תכופים אך חסרי משמעות.*\n",
"> *במחברת זו, אנו מנסים להשתמש במאמר ויקיפדיה שונה בכתובת URL - על למידת מכונה. אפשר לראות שלמרות שמדעי הנתונים פשוטים יותר, מאמר זה מכיל הרבה מונחים, מה שהופך את הניתוח לבעייתי יותר. יש להגיע לדרך אחרת לנקות את הנתונים לאחר שליפת מילות המפתח, כדי להיפטר משילובים של מילים נפוצים אך חסרי משמעות.*\n",
"\n",
"בדוגמה זו, נעשה תרגיל פשוט שמכסה את כל השלבים בתהליך מסורתי של מדע הנתונים. אין צורך לכתוב קוד, ניתן פשוט ללחוץ על התאים למטה כדי להפעיל אותם ולצפות בתוצאה. כאתגר, מומלץ לנסות את הקוד הזה עם נתונים שונים.\n",
"בדוגמה זו, נעשה תרגיל פשוט שמכסה את כל שלבי תהליך מדעי הנתונים המסורתי. אין צורך לכתוב קוד, אפשר פשוט ללחוץ על התאים למטה כדי להריץ אותם ולבחון את התוצאה. כאתגר, מומלץ לנסות את הקוד הזה עם נתונים שונים.\n",
"\n",
"## מטרה\n",
"\n",
"בשיעור זה, דנו במושגים שונים הקשורים למדע הנתונים. בואו ננסה לגלות מושגים נוספים הקשורים לנושא על ידי ביצוע **כריית טקסט**. נתחיל עם טקסט על מדע הנתונים, נחלץ ממנו מילות מפתח, ואז ננסה להמחיש את התוצאה.\n",
"בשיעור זה דנו במושגים שונים הקשורים למדעי הנתונים. בואו ננסה לגלות מושגים קשורים נוספים על ידי עשיית **כריית טקסט**. נתחיל בטקסט על מדעי הנתונים, נחלץ ממנו מילות מפתח, ואז ננסה להמחיש את התוצאה.\n",
"\n",
"כטקסט, אשתמש בדף על מדע הנתונים מוויקיפדיה:\n"
"כטקסט, אשתמש בעמוד על מדעי הנתונים בויקיפדיה:\n"
],
"metadata": {}
},
@ -35,9 +35,9 @@
{
"cell_type": "markdown",
"source": [
"## שלב 1: קבלת הנתונים\n",
"## Step 1: קבלת הנתונים\n",
"\n",
"השלב הראשון בכל תהליך של מדע הנתונים הוא קבלת הנתונים. נשתמש בספריית `requests` כדי לעשות זאת:\n"
"השלב הראשון בכל תהליך מדעי הנתונים הוא לקבל את הנתונים. נשתמש בספריית `requests` כדי לעשות זאת:\n"
],
"metadata": {}
},
@ -69,45 +69,43 @@
{
"cell_type": "markdown",
"source": [
"## שלב 2: עיבוד הנתונים\n",
"## שלב 2: המרת הנתונים\n",
"\n",
"השלב הבא הוא להמיר את הנתונים לצורה המתאימה לעיבוד. במקרה שלנו, הורדנו את קוד המקור של ה-HTML מהדף, ואנו צריכים להמיר אותו לטקסט פשוט.\n",
"השלב הבא הוא להמיר את הנתונים לצורה המתאימה לעיבוד. במקרה שלנו, הורדנו קוד מקור HTML מהדף, ונצטרך להמיר אותו לטקסט פשוט.\n",
"\n",
"ישנן דרכים רבות לבצע זאת. אנו נשתמש באובייקט הפשוט ביותר המובנה ב-[HTMLParser](https://docs.python.org/3/library/html.parser.html) של פייתון. עלינו לרשת את המחלקה `HTMLParser` ולהגדיר את הקוד שיאסוף את כל הטקסט שנמצא בתוך תגיות ה-HTML, למעט תגיות `<script>` ו-`<style>`.\n"
"ישנן דרכים רבות לעשות זאת. נשתמש ב-[BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/), ספריית פייתון פופולרית לניתוח HTML. BeautifulSoup מאפשרת לנו למקד אלמנטים ספציפיים ב-HTML, כך שנוכל להתמקד בתוכן המאמר הראשי מוויקיפדיה ולהפחית תפריטים ניווט, סרגלי צד, תת-כותרות ותוכן לא רלוונטי אחר (אם כי ייתכן ועדיין יישאר טקסט רוטינה מסוים).\n"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"ראשית, אנו צריכים להתקין את ספריית BeautifulSoup לניתוח HTML:\n"
"from bs4 import BeautifulSoup\r\n\r\n# Parse the HTML content\r\nsoup = BeautifulSoup(text, 'html.parser')\r\n\r\n# Extract only the main article content from Wikipedia\r\n# Wikipedia uses 'mw-parser-output' class for the main article content\r\ncontent = soup.find('div', class_='mw-parser-output')\r\n\r\ndef clean_wikipedia_content(content_node):\r\n \"\"\"Remove common non-article elements from a Wikipedia content node.\"\"\"\r\n # Strip jump links, navboxes, reference lists/superscripts, edit sections, TOC, sidebars, etc.\r\n selectors = [\r\n '.mw-jump-link',\r\n '.navbox',\r\n '.reflist',\r\n 'sup.reference',\r\n '.mw-editsection',\r\n '.hatnote',\r\n '.metadata',\r\n '.infobox',\r\n '#toc',\r\n '.toc',\r\n '.sidebar',\r\n ]\r\n for selector in selectors:\r\n for el in content_node.select(selector):\r\n el.decompose()\r\n\r\nif content:\r\n # Clean the content node to better approximate article text only.\r\n clean_wikipedia_content(content)\r\n text = content.get_text(separator=' ', strip=True)\r\n print(text[:1000])\r\nelse:\r\n print(\"Could not find main content. Using full page text.\")\r\n text = soup.get_text(separator=' ', strip=True)\r\n print(text[:1000])"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" Machine learning - Wikipedia Machine learning From Wikipedia, the free encyclopedia Jump to navigation Jump to search Study of algorithms that improve automatically through experience For the journal, see Machine Learning (journal) . \"Statistical learning\" redirects here. For statistical learning in linguistics, see statistical learning in language acquisition . Part of a series on Artificial intelligence Major goals Artificial general intelligence Planning Computer vision General game playing Knowledge reasoning Machine learning Natural language processing Robotics Approaches Symbolic Deep learning Bayesian networks Evolutionary algorithms Philosophy Ethics Existential risk Turing test Chinese room Control problem Friendly AI History Timeline Progress AI winter Technology Applications Projects Programming languages Glossary Glossary v t e Part of a series on Machine learning and data mining Problems Classification Clustering Regression Anomaly detection Data Cleaning AutoML Associ\n"
"Machine learning From Wikipedia, the free encyclopedia Study of algorithms that improve automatically through experience Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of statistical algorithms that can learn from data and generalize to unseen data, and thus perform tasks without explicit instructions. Recently, artificial neural networks have been able to surpass many previous approaches in performance. ML finds application in many fields, including natural language processing, computer vision, speech recognition, email filtering, agriculture, and medicine.\n"
]
}
],
@ -118,9 +116,9 @@
"source": [
"## שלב 3: קבלת תובנות\n",
"\n",
"השלב החשוב ביותר הוא להפוך את הנתונים שלנו לצורה שממנה נוכל להפיק תובנות. במקרה שלנו, אנחנו רוצים לחלץ מילות מפתח מהטקסט ולראות אילו מילות מפתח הן המשמעותיות ביותר.\n",
"השלב החשוב ביותר הוא להפוך את הנתונים שלנו לצורה כלשהי שממנה נוכל להסיק תובנות. במקרה שלנו, אנו רוצים לחרוט מילות מפתח מהטקסט, ולראות אילו מילות מפתח הן יותר משמעותיות.\n",
"\n",
"נשתמש בספריית Python בשם [RAKE](https://github.com/aneesha/RAKE) לחילוץ מילות מפתח. ראשית, נתקין את הספרייה הזו במקרה שהיא לא מותקנת:\n"
"נשתמש בספריית Python בשם [RAKE](https://github.com/aneesha/RAKE) להפקת מילות מפתח. קודם כל, בואו נתקין את הספרייה הזו במקרה שהיא לא קיימת:\n"
],
"metadata": {}
},
@ -172,7 +170,7 @@
{
"cell_type": "markdown",
"source": [
"הפונקציונליות העיקרית זמינה מאובייקט `Rake`, אותו ניתן להתאים אישית באמצעות כמה פרמטרים. במקרה שלנו, נגדיר את האורך המינימלי של מילת מפתח ל-5 תווים, את התדירות המינימלית של מילת מפתח במסמך ל-3, ואת המספר המקסימלי של מילים במילת מפתח - ל-2. אתם מוזמנים להתנסות בערכים אחרים ולצפות בתוצאה.\n"
"הפונקציונליות העיקרית זמינה מתוך האובייקט `Rake`, אותו ניתן להתאים באמצעות פרמטרים מסוימים. במקרה שלנו, נגדיר את האורך המינימלי של מפתח מילים ל-5 תווים, את התדירות המינימלית של מפתח מילים במסמך ל-3, ואת המספר המקסימלי של מילים במפתח מילים - ל-2. אל תהססו לשחק עם ערכים אחרים ולבחון את התוצאה.\n"
],
"metadata": {}
},
@ -353,11 +351,12 @@
{
"cell_type": "markdown",
"source": [
"השגנו רשימה של מונחים יחד עם דרגת החשיבות המשויכת אליהם. כפי שניתן לראות, התחומים הרלוונטיים ביותר, כמו למידת מכונה וביג דאטה, מופיעים ברשימה במיקומים העליונים.\n",
"\n",
"## שלב 4: ויזואליזציה של התוצאה\n",
"קיבלנו רשימת מונחים יחד עם דרגת החשיבות המשויכת להם. כפי שניתן לראות, התחומים הרלוונטיים ביותר, כגון למידת מכונה ונתונים גדולים, מופיעים ברשימה במקומות הגבוהים ביותר.\n",
"\n",
"אנשים מבינים נתונים בצורה הטובה ביותר כאשר הם מוצגים באופן חזותי. לכן, לעיתים קרובות יש היגיון להציג את הנתונים בצורה ויזואלית כדי להפיק תובנות. ניתן להשתמש בספריית `matplotlib` בפייתון כדי לשרטט התפלגות פשוטה של מילות המפתח עם הרלוונטיות שלהן:\n"
"## שלב 4: הדמיית התוצאה\n",
"\n",
"אנשים יכולים לפרש את הנתונים בצורה הטובה ביותר באופן חזותי. לכן לעיתים קרובות יש משמעות להדמיית הנתונים על מנת להסיק תובנות. אנו יכולים להשתמש בספריית `matplotlib` בפייתון כדי להציג התפלגות פשוטה של מילות המפתח עם הרלוונטיות שלהן:\n"
],
"metadata": {}
},
@ -392,7 +391,7 @@
{
"cell_type": "markdown",
"source": [
"יש, עם זאת, דרך אפילו טובה יותר להמחיש תדירות מילים - באמצעות **ענן מילים**. נצטרך להתקין ספרייה נוספת כדי ליצור את ענן המילים מרשימת מילות המפתח שלנו.\n"
"עם זאת, ישנה דרך טובה אפילו יותר להמחיש תדירויות מילים - באמצעות **ענן מילים**. נצטרך להתקין ספרייה נוספת כדי להציג את ענן המילים מרשימת מילות המפתח שלנו.\n"
],
"metadata": {}
},
@ -408,7 +407,7 @@
{
"cell_type": "markdown",
"source": [
"אובייקט `WordCloud` אחראי על קבלת טקסט מקורי או רשימה מחושבת מראש של מילים עם התדירויות שלהן, ומחזיר תמונה שניתן להציג באמצעות `matplotlib`:\n"
"האובייקט `WordCloud` אחראי לקבל או טקסט מקורי, או רשימה מחושבת מראש של מילים עם התדירויות שלהן, ומחזיר תמונה, שניתן להציג באמצעות `matplotlib`:\n"
],
"metadata": {}
},
@ -441,7 +440,7 @@
{
"cell_type": "markdown",
"source": [
"אנחנו יכולים גם להעביר את הטקסט המקורי ל-`WordCloud` - בואו נראה אם אנחנו מצליחים לקבל תוצאה דומה:\n"
"אנחנו יכולים גם להעביר את הטקסט המקורי ל־`WordCloud` - בואו נבדוק אם אנחנו מצליחים לקבל תוצאה דומה:\n"
],
"metadata": {}
},
@ -490,9 +489,9 @@
{
"cell_type": "markdown",
"source": [
"ניתן לראות שהענן מילים נראה עכשיו מרשים יותר, אך הוא גם מכיל הרבה רעש (לדוגמה, מילים לא קשורות כמו `Retrieved on`). בנוסף, אנחנו מקבלים פחות מילות מפתח שמורכבות משתי מילים, כמו *data scientist* או *computer science*. הסיבה לכך היא שאלגוריתם RAKE עושה עבודה טובה יותר בבחירת מילות מפתח איכותיות מתוך הטקסט. הדוגמה הזו ממחישה את החשיבות של עיבוד וניקוי נתונים, מכיוון שתמונה ברורה בסוף תאפשר לנו לקבל החלטות טובות יותר.\n",
"ניתן לראות שעכשיו ענן המילים נראה מרשים יותר, אך הוא גם מכיל הרבה רעש (למשל מילים לא קשורות כמו `Retrieved on`). כמו כן, נקבל פחות מילות מפתח שמורכבות משתי מילים, כמו *data scientist*, או *computer science*. הדבר נובע מהעובדה שאלגוריתם RAKE מבצע עבודה טובה יותר בבחירת מילות מפתח איכותיות מתוך הטקסט. הדוגמה הזו ממחישה את חשיבות הקדם-עיבוד והניקוי של הנתונים, כי תמונה ברורה בסוף תאפשר לנו לקבל החלטות טובות יותר.\n",
"\n",
"בתרגיל הזה עברנו תהליך פשוט של חילוץ משמעות מטקסט של ויקיפדיה, בצורה של מילות מפתח וענן מילים. הדוגמה הזו די פשוטה, אבל היא מדגימה היטב את כל השלבים הטיפוסיים שמדען נתונים עובר בעבודה עם נתונים, החל מרכישת הנתונים ועד ויזואליזציה.\n",
"בתרגיל זה עברנו תהליך פשוט של חילוץ משמעות מתוך טקסט מוויקיפדיה, בצורת מילות מפתח וענן מילים. הדוגמה פשוטה יחסית, אך היא ממחישה היטב את כל השלבים הטיפוסיים שמדען נתונים יעבור בעת עבודה עם נתונים, החל מרכישת הנתונים, ועד להמחשה חזותית.\n",
"\n",
"בקורס שלנו נדון בכל השלבים הללו בפירוט.\n"
],
@ -502,7 +501,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**כתב ויתור**: \nמסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**אזהרה**: \nמסמך זה תורגם באמצעות שירות התרגום המבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל טעויות או אי דיוקים. יש להסתמך על המסמך המקורי בשפתו המקורית כמקור מוסמך. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. אנו אינם אחראים לכל אי הבנה או פרשנות שגויה הנובעות משימוש בתרגום זה.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
סטטיסטיקה ותורת ההסתברות הן שני תחומים מתמטיים הקשורים זה לזה באופן הדוק, והם בעלי חשיבות רבה במדעי הנתונים. ניתן לעבוד עם נתונים גם ללא ידע מעמיק במתמטיקה, אך עדיין עדיף להכיר לפחות כמה מושגים בסיסיים. כאן נציג מבוא קצר שיעזור לכם להתחיל.
## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ds/quiz/6)
@ -30,7 +30,7 @@
ניתן לדבר רק על ההסתברות שמשתנה ייפול בטווח ערכים מסוים, למשל P(t<sub>1</sub>≤X<t<sub>2</sub>). במקרה זה, התפלגות ההסתברות מתוארת באמצעות **פונקציית צפיפות הסתברות** p(x), כך ש-
האנלוג הרציף של התפלגות אחידה נקרא **אחידה רציפה**, שמוגדרת על טווח סופי. ההסתברות שהערך X ייפול בטווח באורך l היא פרופורציונלית ל-l, ועולה עד 1.
@ -73,11 +73,11 @@
להלן תיבת נתונים המציגה ממוצע, חציון ורבעונים עבור הנתונים שלנו:


מכיוון שהנתונים שלנו מכילים מידע על **תפקידים** שונים של שחקנים, ניתן גם ליצור תיבת נתונים לפי תפקיד - זה יאפשר לנו להבין כיצד ערכי הפרמטרים משתנים בין התפקידים. הפעם נבחן את הגובה:


דיאגרמה זו מציעה כי, בממוצע, גובהם של שחקני בסיס ראשון גבוה יותר מגובהם של שחקני בסיס שני. בהמשך השיעור נלמד כיצד ניתן לבדוק את ההשערה הזו בצורה פורמלית יותר, וכיצד להראות שהנתונים שלנו משמעותיים מבחינה סטטיסטית כדי להוכיח זאת.
@ -85,7 +85,7 @@
כדי לראות מהי התפלגות הנתונים שלנו, ניתן לשרטט גרף שנקרא **היסטוגרמה**. ציר ה-X יכיל מספר של טווחי משקל שונים (מה שנקרא **תאים**), וציר ה-Y יראה את מספר הפעמים שהדגימה של המשתנה האקראי הייתה בתוך טווח נתון.


מההיסטוגרמה הזו ניתן לראות שכל הערכים מרוכזים סביב משקל ממוצע מסוים, וככל שמתרחקים מהמשקל הזה - פחות משקלים בערך זה מופיעים. כלומר, לא סביר שמשקלו של שחקן בייסבול יהיה שונה מאוד מהמשקל הממוצע. השונות של המשקלים מראה את המידה שבה המשקלים נוטים להיות שונים מהממוצע.
אם נשרטט את ההיסטוגרמה של הדגימות שנוצרו, נראה תמונה דומה מאוד לזו שהוצגה לעיל. ואם נגדיל את מספר הדגימות ואת מספר התאים, נוכל ליצור תמונה של התפלגות נורמלית שקרובה יותר לאידיאל:


*התפלגות נורמלית עם ממוצע=0 וסטיית תקן=1*
@ -224,7 +224,7 @@ array([[1. , 0.52959196],
במקרה שלנו, הערך 0.53 מצביע על כך שיש קורלציה מסוימת בין משקל לגובה של אדם. נוכל גם ליצור תרשים פיזור של ערך אחד מול השני כדי לראות את הקשר באופן חזותי:


> דוגמאות נוספות לקורלציה ושונות משותפת ניתן למצוא ב-[מחברת המצורפת](notebook.ipynb).
> צילום על ידי <ahref="https://unsplash.com/@dawson2406?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Stephen Dawson</a> ב-<ahref="https://unsplash.com/s/photos/data?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
בשיעורים אלו תגלו כיצד מוגדרים מדעי הנתונים ותלמדו על שיקולים אתיים שעל מדען נתונים לקחת בחשבון. בנוסף, תלמדו מהי ההגדרה של נתונים ותכירו מעט את תחומי הסטטיסטיקה וההסתברות, שהם הבסיס האקדמי של מדעי הנתונים.
בעוד שמאגרי נתונים מציעים דרכים יעילות מאוד לאחסן נתונים ולבצע שאילתות באמצעות שפות שאילתה, הדרך הגמישה ביותר לעיבוד נתונים היא כתיבת תוכנית משלך כדי לתפעל נתונים. במקרים רבים, ביצוע שאילתה במאגר נתונים יהיה דרך יעילה יותר. עם זאת, במקרים שבהם נדרש עיבוד נתונים מורכב יותר, לא ניתן לבצע זאת בקלות באמצעות SQL.
ניתן לתכנת עיבוד נתונים בכל שפת תכנות, אך ישנן שפות מסוימות שהן ברמה גבוהה יותר בכל הנוגע לעבודה עם נתונים. מדעני נתונים בדרך כלל מעדיפים אחת מהשפות הבאות:
@ -64,7 +64,7 @@ print(f"Length of index is {len(idx)}")


> **הערה** שאנו לא משתמשים בתחביר הפשוט `total_items+additional_items`. אם היינו עושים זאת, היינו מקבלים הרבה ערכי `NaN` (*Not a Number*) בסדרה המתקבלת. זאת מכיוון שיש ערכים חסרים עבור חלק מנקודות האינדקס בסדרת `additional_items`, והוספת `NaN` לכל דבר תוצאה ב-`NaN`. לכן עלינו לציין את הפרמטר `fill_value` במהלך ההוספה.
@ -84,7 +84,7 @@ total_items.plot()
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
```


### DataFrame
@ -210,7 +210,7 @@ df = pd.read_csv('file.csv')
מכיוון שאנחנו רוצים להדגים כיצד להתמודד עם נתונים, אנו מזמינים אתכם לפתוח את [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) ולקרוא אותו מההתחלה ועד הסוף. תוכלו גם להריץ תאים ולעשות כמה אתגרים שהשארנו לכם בסוף.
> צילום על ידי <ahref="https://unsplash.com/@swimstaralex?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Alexander Sinn</a> ב-<ahref="https://unsplash.com/s/photos/data?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
בשיעורים אלו תלמדו כמה מהדרכים שבהן ניתן לנהל, לעבד ולהשתמש בנתונים ביישומים. תלמדו על מסדי נתונים יחסיים ולא-יחסיים וכיצד ניתן לאחסן בהם נתונים. תלמדו את היסודות של עבודה עם Python לניהול נתונים, ותגלו כמה מהדרכים הרבות שבהן ניתן לעבוד עם Python לניהול וניתוח נתונים.
כעת, הציגו את אותם נתונים עם סכמת צבעים של דבש כדי להראות כיצד המחיר מתפתח לאורך השנים. ניתן לעשות זאת על ידי הוספת פרמטר 'hue' כדי להציג את השינוי משנה לשנה:
עם שינוי סכמת הצבעים, ניתן לראות בבירור שיש התקדמות חזקה לאורך השנים מבחינת המחיר לקילוגרם של דבש. אכן, אם תבחנו סט דגימה בנתונים כדי לאמת (בחרו מדינה מסוימת, כמו אריזונה לדוגמה), תוכלו לראות דפוס של עליית מחירים משנה לשנה, עם מעט חריגות:
✅ מכיוון ש-Seaborn מאגד נתונים סביב קו אחד, הוא מציג "את המדידות המרובות בכל ערך x על ידי הצגת הממוצע וטווח הביטחון של 95% סביב הממוצע". [מקור](https://seaborn.pydata.org/tutorial/relational.html). ניתן לבטל התנהגות זו על ידי הוספת `ci=None`.
בעוד ששום דבר לא קופץ לעין סביב שנת 2003, זה מאפשר לנו לסיים את השיעור בנימה מעט שמחה יותר: למרות שיש ירידה כללית במספר הכוורות, מספר הכוורות מתייצב גם אם התפוקה לכל כוורת יורדת.
כאן, אתם מתקינים את חבילת `ggplot2` ואז מייבאים אותה לסביבת העבודה באמצעות הפקודה `library("ggplot2")`. כדי לשרטט כל גרף ב-ggplot, משתמשים בפונקציה `ggplot()` ומציינים את מערך הנתונים, משתני x ו-y כמאפיינים. במקרה זה, אנו משתמשים בפונקציה `geom_line()` מכיוון שאנו מכוונים לשרטט גרף קווי.
מה אתם מבחינים מיד? נראה שיש לפחות ערך חריג אחד - זו מוטת כנפיים מרשימה! מוטת כנפיים של יותר מ-2000 ס"מ שווה ליותר מ-20 מטרים - האם יש פטרודקטילים במינסוטה? בואו נחקור.
גם עם סיבוב התוויות ל-45 מעלות, יש יותר מדי תוויות לקריאה. בואו ננסה אסטרטגיה שונה: תייגו רק את הערכים החריגים והציבו את התוויות בתוך הגרף. תוכלו להשתמש בגרף פיזור כדי לפנות יותר מקום לתיוג:
בקטע הבא, אנו מתקינים את החבילות [dplyr](https://www.rdocumentation.org/packages/dplyr/versions/0.7.8) ו-[lubridate](https://www.rdocumentation.org/packages/lubridate/versions/1.8.0) כדי לעזור במניפולציה וקיבוץ נתונים לצורך שרטוט גרף עמודות מוערם. תחילה, מקבצים את הנתונים לפי `Category` של הציפור ואז מסכמים את העמודות `MinLength`, `MaxLength`, `MinBodyMass`, `MaxBodyMass`, `MinWingspan`, `MaxWingspan`. לאחר מכן, שרטטו את גרף העמודות באמצעות חבילת `ggplot2` וציינו את הצבעים עבור הקטגוריות השונות והתוויות.


גרף העמודות הזה, עם זאת, אינו קריא מכיוון שיש יותר מדי נתונים לא מקובצים. יש לבחור רק את הנתונים שברצונכם לשרטט, אז בואו נסתכל על אורך הציפורים לפי הקטגוריה שלהן.
תחילה סופרים ערכים ייחודיים בעמודת `Category` ואז ממיינים אותם למערך נתונים חדש `birds_count`. נתונים ממיונים אלו מתועלים באותה רמה כך שהם משורטטים בסדר המיועד. באמצעות `ggplot2` אתם שרטטתם את הנתונים בגרף עמודות. הפונקציה `coord_flip()` מציגה עמודות אופקיות.
גרף העמודות הזה מציג מבט טוב על מספר הציפורים בכל קטגוריה. במבט חטוף, ניתן לראות שמספר הציפורים הגדול ביותר באזור זה שייך לקטגוריית ברווזים/אווזים/עופות מים. מינסוטה היא "ארץ 10,000 האגמים", כך שזה לא מפתיע!


זה נותן סקירה כללית של ההתפלגות הכללית של אורך גוף לפי סדר הציפורים, אך זו אינה הדרך האופטימלית להציג התפלגויות אמיתיות. משימה זו בדרך כלל מתבצעת על ידי יצירת היסטוגרמה.


כפי שניתן לראות, רוב 400+ הציפורים במערך הנתונים הזה נמצאות בטווח של מתחת ל-2000 עבור מסת הגוף המקסימלית שלהן. ניתן לקבל תובנות נוספות על הנתונים על ידי שינוי הפרמטר `bins` למספר גבוה יותר, כמו 30:
נראה שאין מתאם טוב בין מוטת כנפיים מינימלית למצב השימור. בדקו אלמנטים אחרים במערך הנתונים באמצעות שיטה זו. תוכלו לנסות מסננים שונים גם כן. האם אתם מוצאים מתאם כלשהו?
ניתן לראות כיצד התרשים משקף את התרשים הקודם עבור נתוני מוטת כנפיים מינימלית; הוא פשוט מעט חלק יותר. אם תרצו לחזור לקו המדרגות של MaxBodyMass בתרשים השני שבניתם, תוכלו להחליק אותו היטב על ידי יצירתו מחדש באמצעות שיטה זו:
והנה, גרף עוגה שמראה את היחסים של נתונים אלו לפי שתי מחלקות הפטריות. חשוב מאוד לקבל את סדר התוויות נכון, במיוחד כאן, אז ודאו את הסדר שבו נבנה מערך התוויות!
בשיעור זה, למדתם שלוש דרכים להמחשת יחסים. ראשית, עליכם לקבץ את הנתונים שלכם לקטגוריות ואז להחליט מהי הדרך הטובה ביותר להציג את הנתונים - עוגה, דונאט, או וופל. כולם טעימים ומספקים למשתמש תמונת מצב מיידית של מאגר נתונים.
כעת, הציגו את אותם נתונים עם ערכת צבעים של דבש כדי להראות כיצד המחיר מתפתח לאורך השנים. ניתן לעשות זאת על ידי הוספת פרמטר 'scale_color_gradientn' כדי להציג את השינוי משנה לשנה:
עם שינוי ערכת הצבעים, ניתן לראות בבירור התקדמות חזקה לאורך השנים מבחינת המחיר לקילוגרם של דבש. למעשה, אם תבחנו דוגמה מתוך הנתונים כדי לאמת (בחרו מדינה מסוימת, למשל אריזונה), תוכלו לראות דפוס של עליית מחירים משנה לשנה, עם מעט יוצאים מן הכלל:
עבור מאגר הנתונים הזה, שום דבר לא בולט במיוחד בכל הנוגע למספר הכוורות והתפוקה שלהן, משנה לשנה ומדינה למדינה. האם יש דרך אחרת למצוא קשר בין שני המשתנים הללו?
למרות ששום דבר לא בולט לעין סביב שנת 2003, זה מאפשר לנו לסיים את השיעור הזה בנימה מעט שמחה יותר: למרות שיש ירידה כללית במספר הכוורות, מספר הכוורות מתייצב גם אם התפוקה שלהן לכל כוורת יורדת.
גם אם מדען נתונים מקפיד לבחור את התרשים הנכון לנתונים הנכונים, יש דרכים רבות שבהן ניתן להציג נתונים באופן שמוכיח נקודה, לעיתים על חשבון הנתונים עצמם. ישנם דוגמאות רבות לתרשימים ואינפוגרפיקות מטעים!
[](https://www.youtube.com/watch?v=oX74Nge8Wkw "איך תרשימים משקרים")
[](https://www.youtube.com/watch?v=oX74Nge8Wkw "איך תרשימים משקרים")
> 🎥 לחץ על התמונה למעלה להרצאה על תרשימים מטעים
התרשים הזה הופך את ציר ה-X כדי להציג את ההפך מהאמת, בהתבסס על תאריך:
[התרשים הזה](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) אפילו יותר מטעה, שכן העין נמשכת ימינה כדי להסיק שבמהלך הזמן, מקרי הקורונה ירדו במחוזות השונים. למעשה, אם תסתכל מקרוב על התאריכים, תמצא שהם סודרו מחדש כדי ליצור מגמת ירידה מטעה.
הדוגמה הידועה הזו משתמשת בצבע ובציר Y הפוך כדי להטעות: במקום להסיק שמקרי המוות מנשק עלו לאחר חקיקת חוקים ידידותיים לנשק, למעשה העין מתעתעת לחשוב שההפך הוא הנכון:
השוואת דברים שאינם ברי השוואה היא עוד טריק מפוקפק. ישנו [אתר נפלא](https://tylervigen.com/spurious-correlations) שמציג 'קורלציות שגויות' עם 'עובדות' שמקשרות בין דברים כמו שיעור הגירושין במיין לצריכת מרגרינה. קבוצת Reddit גם אוספת את [השימושים המכוערים](https://www.reddit.com/r/dataisugly/top/?t=all) בנתונים.
@ -91,13 +91,13 @@
אם הנתונים שלך הם טקסטואליים ומפורטים בציר ה-X, תוכל להטות את הטקסט לקריאות טובה יותר. [plot3D](https://cran.r-project.org/web/packages/plot3D/index.html) מציע גרפים תלת-ממדיים, אם הנתונים שלך תומכים בכך. ניתן ליצור ויזואליזציות מתוחכמות באמצעותו.
חלק מהויזואליזציות הטובות ביותר כיום הן מונפשות. שירלי וו יצרה ויזואליזציות מדהימות עם D3, כמו '[פרחי סרטים](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', שבה כל פרח הוא ויזואליזציה של סרט. דוגמה נוספת עבור ה-Guardian היא 'בוסס החוצה', חוויה אינטראקטיבית שמשלבת ויזואליזציות עם Greensock ו-D3 יחד עם פורמט מאמר סקרוליטלי כדי להראות כיצד ניו יורק מתמודדת עם בעיית חסרי הבית שלה על ידי שליחת אנשים מחוץ לעיר.
> "בוסס החוצה: כיצד אמריקה מזיזה את חסרי הבית שלה" מתוך [הגרדיאן](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). ויזואליזציות מאת נדיה ברמר ושירלי וו
@ -107,7 +107,7 @@
תשלים אפליקציית ווב שתציג תצוגה מונפשת של הרשת החברתית הזו. היא משתמשת בספרייה שנבנתה כדי ליצור [ויזואליזציה של רשת](https://github.com/emiliorizzo/vue-d3-network) באמצעות Vue.js ו-D3. כשהאפליקציה פועלת, תוכל להזיז את הצמתים על המסך כדי לשנות את סידור הנתונים.


> צילום על ידי <ahref="https://unsplash.com/@jenna2980?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Jenna Lee</a> ב-<ahref="https://unsplash.com/s/photos/bees-in-a-meadow?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
הדמיית נתונים היא אחת המשימות החשובות ביותר של מדען נתונים. תמונות שוות אלף מילים, וויזואליזציה יכולה לעזור לך לזהות כל מיני חלקים מעניינים בנתונים שלך כמו קפיצות, חריגות, קבוצות, מגמות ועוד, שיכולים לעזור לך להבין את הסיפור שהנתונים שלך מנסים לספר.
השיעור הזה מתמקד ב-3 חלקים מתוך מחזור החיים: איסוף, עיבוד ותחזוקה.


> תמונה מאת [Berkeley School of Information](https://ischoolonline.berkeley.edu/data-science/what-is-data-science/)
## איסוף
@ -89,7 +89,7 @@
|תהליך מדעי הנתונים של הצוות (TDSP)|תהליך התקן התעשייתי לכריית נתונים (CRISP-DM)|
|--|--|
| |  |
| |  |
| תמונה מאת [Microsoft](https://docs.microsoft.comazure/architecture/data-science-process/lifecycle) | תמונה מאת [Data Science Process Alliance](https://www.datascience-pm.com/crisp-dm-2/) |
## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ds/quiz/27)
> צילום על ידי <ahref="https://unsplash.com/@headwayio?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Headway</a> ב-<ahref="https://unsplash.com/s/photos/communication?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
בשיעורים אלו, תחקור כמה מההיבטים של מחזור החיים של מדע הנתונים, כולל ניתוח ותקשורת סביב נתונים.
> צילום מאת [Jelleke Vanooteghem](https://unsplash.com/@ilumire) מתוך [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape)
כשמדובר בביצוע מדע נתונים עם נתונים גדולים, הענן יכול להיות משנה משחק. בשלושת השיעורים הבאים, נלמד מהו הענן ומדוע הוא יכול להיות מאוד מועיל. בנוסף, נחקור מערך נתונים על אי ספיקת לב ונבנה מודל שיעזור להעריך את ההסתברות של אדם לסבול מאי ספיקת לב. נשתמש בכוחו של הענן כדי לאמן, לפרוס ולצרוך מודל בשתי דרכים שונות. דרך אחת תשתמש רק בממשק המשתמש בגישה של Low code/No code, והדרך השנייה תשתמש ב-Azure Machine Learning Software Developer Kit (Azure ML SDK).
* [מדע הנתונים בבריאות](https://data-flair.training/blogs/data-science-in-healthcare/) - מדגיש יישומים כמו הדמיה רפואית (למשל, MRI, רנטגן, CT-Scan), גנומיקה (ריצוף DNA), פיתוח תרופות (הערכת סיכונים, תחזית הצלחה), אנליטיקה חזויה (טיפול בחולים ולוגיסטיקה של אספקה), מעקב ומניעת מחלות וכו'.
 קרדיט תמונה: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/)
 קרדיט תמונה: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/)
התרשים מציג תחומים ודוגמאות נוספים ליישום טכניקות מדע הנתונים. רוצים לחקור יישומים נוספים? בדקו את [סקירה ולימוד עצמי](../../../../6-Data-Science-In-Wild/20-Real-World-Examples) למטה.
[](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=344191198)
סוכני ענן אז'ור במיקרוסופט שמחים להציע תכנית לימודים בת 10 שבועות ו-20 שיעורים, כולם על מדע הנתונים. כל שיעור כולל חידונים לפני ואחרי השיעור, הוראות כתובות להשלמת השיעור, פתרון, ומשימה. הפדגוגיה מבוססת הפרויקטים שלנו מאפשרת לך ללמוד תוך כדי בנייה, דרך מוכחת שבאמצעותה מיומנויות חדשות "נדבקות".
סוכני ענן Azure במיקרוסופט שמחים להציע תוכנית לימודים בת 10 שבועות, 20 שיעורים, הכל על מדע הנתונים. כל שיעור כולל מבחני טרום-שיעור וסתם-שיעור, הנחיות כתובות להשלמת השיעור, פתרון, ומשימה. הפדגוגיה מבוססת הפרויקט שלנו מאפשרת לך ללמוד תוך כדי בנייה, דרך מוכחת להטמעת מיומנויות חדשות.
יש לנו סדרת למידה עם בינה מלאכותית ב-Discord, למדו עוד והצטרפו אלינו ב-[Learn with AI Series](https://aka.ms/learnwithai/discord) מ-18 עד 30 בספטמבר, 2025. תקבלו טיפים וטריקים לשימוש ב-GitHub Copilot למדעי הנתונים.
יש לנו סדרת למידה בדיסקורד בנושא AI, למידע נוסף והצטרפות בקר ב-[סדרת למידה עם AI](https://aka.ms/learnwithai/discord) מ-18 עד 30 בספטמבר 2025. תקבל טיפים וטריקים לשימוש ב-GitHub Copilot עבור מדע נתונים.

# האם אתה סטודנט?
# אתה סטודנט?
התחל עם המשאבים הבאים:
- [דף מרכז הסטודנטים](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) בדף זה תמצא משאבים למתחילים, חבילות סטודנטים ואפילו דרכים לקבל שובר תעודה חינם. זה דף שתרצה לסמן ולבדוק מדי פעם כי אנו מחליפים תוכן לפחות פעם בחודש.
- [שגרירי הסטודנטים של מיקרוסופט](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) הצטרף לקהילה עולמית של שגרירי סטודנטים, זו יכולה להיות הדרך שלך למיקרוסופט.
- [דף מרכז הסטודנטים](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) בדף זה תמצא משאבים למתחילים, חבילות לסטודנטים ואפילו דרכים לקבל שובר הסמכה חינם. זהו דף שכדאי לשמור בסימניות ולבדוק מדי פעם כי אנו מעדכנים תכנים לפחות פעם בחודש.
- [שגרירי הסטודנטים של מיקרוסופט](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) הצטרף לקהילת שגרירים עולמית, זו יכולה להיות הדרך שלך למיקרוסופט.
# התחלה
# להתחלה
## 📚 תיעוד
- **[מדריך התקנה](INSTALLATION.md)** - הוראות שלב-אחר-שלב למתחילים
- **[מדריך התקנה](INSTALLATION.md)** - הוראות הקמה צעד-אחר-צעד למתחילים
- **[מדריך שימוש](USAGE.md)** - דוגמאות וזרימות עבודה נפוצות
- **[למורים](for-teachers.md)** - הנחיות הוראה ומשאבים ללמידה בכיתה
## 👨🎓 לסטודנטים
> **מלא מתחילים**: חדש במדע הנתונים? התחל עם [דוגמאות ידידותיות למתחילים](examples/README.md)! דוגמאות פשוטות ומוסברות היטב יאפשרו לך להבין את הבסיס לפני שתקפוץ לתוכנית הלימודים המלאה.
> **[סטודנטים](https://aka.ms/student-page)**: לשימוש עצמאי בתכנית זו, פונק את כל המאגר והשלם את התרגילים באופן עצמאי, החל בחידון לפני ההרצאה. לאחר מכן קרא את ההרצאה והשלם את שאר הפעילויות. נסה ליצור את הפרויקטים על ידי הבנת השיעורים במקום להעתיק את קוד הפתרון; עם זאת, קוד זה זמין בתיקיות /solutions בכל שיעור ממוקד פרויקט. רעיון נוסף הוא ליצור קבוצת למידה עם חברים ולעבור יחד על התוכן. ללימוד נוסף מומלץ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum).
> **מתחילים מוחלטים**: חדשים במדע הנתונים? התחל עם [דוגמאות ידידותיות למתחילים](examples/README.md)! דוגמאות פשוטות ומוסברות היטב שיעזרו לך להבין את היסודות לפני שנכנסים לתוכנית המלאה.
> **[סטודנטים](https://aka.ms/student-page)**: להשתמש בתוכנית זו באופן עצמאי, פצל את המאגר כולו והשלם את התרגילים בעצמך, החל מבחן טרום-הרצאה. לאחר מכן קרא את ההרצאה והשלם את שאר הפעילויות. נסה ליצור את הפרויקטים על ידי הבנת השיעורים ולא על ידי העתקת קטעי הקוד; עם זאת, הקוד זמין בתיקיית /solutions בכל שיעור ממוקד פרויקט. רעיון נוסף יהיה להקים קבוצת לימוד עם חברים ולעבוד על התוכן יחד. ללמידה נוספת מומלץ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum).
**התחלה מהירה:**
1. בדוק את [מדריך ההתקנה](INSTALLATION.md) כדי להגדיר את הסביבה שלך
2. עיין ב[מדריך השימוש](USAGE.md) כדי ללמוד כיצד לעבוד עם התכנית
3. התחל עם שיעור 1 ועבוד לפי הסדר
1. בדוק את [מדריך ההתקנה](INSTALLATION.md) כדי להקים את הסביבה שלך
2. עיין ב-[מדריך השימוש](USAGE.md) כדי ללמוד כיצד לעבוד עם תוכנית הלימודים
3. התחל בשיעור 1 ועבור לפי הסדר
4. הצטרף ל[קהילת הדיסקורד שלנו](https://aka.ms/ds4beginners/discord) לקבלת תמיכה
## 👩🏫 למורים
> **מורים**: כלולנו [כמה הצעות](for-teachers.md) כיצד להשתמש בתוכנית הלימודים הזו. נשמח למשובכם [בפורום הדיונים שלנו](https://github.com/microsoft/Data-Science-For-Beginners/discussions)!
> **למורים**: כללנו [כמה הצעות](for-teachers.md) איך להשתמש בתכנית זו. נשמח למשובכם [בפורום הדיונים שלנו](https://github.com/microsoft/Data-Science-For-Beginners/discussions)!
> 🎥 לחצו על התמונה למעלה לצפייה בסרטון על הפרויקט ועל האנשים שיצרו אותו!
> 🎥 לחצו על התמונה למעלה לסרטון אודות הפרויקט והאנשים שיצרו אותו!
## פדגוגיה
בחרנו שני עקרונות פדגוגיים בבניית תוכנית הלימודים הזו: להבטיח שהיא מבוססת פרויקטים ושהיא כוללת בחנים תכופים. בסוף הסדרה הזו, התלמידים ילמדו עקרונות בסיסיים במדעי הנתונים, כולל מושגים אתיים, הכנת נתונים, דרכים שונות לעבודה עם נתונים, ויזואליזציה של נתונים, ניתוח נתונים, מקרי שימוש אמיתיים במדעי הנתונים ועוד.
בחרנו שני עקרונות פדגוגיים בעת בניית תוכנית הלימודים הזו: להבטיח שהיא מבוססת פרויקטים וכוללת חידונים תכופים. בסוף הסדרה הזו, התלמידים ילמדו עקרונות בסיסיים במדעי הנתונים, כולל מושגים אתיים, הכנת נתונים, דרכים שונות לעבודה עם נתונים, ויזואליזציה של נתונים, ניתוח נתונים, מקרי שימוש אמיתיים במדעי הנתונים, ועוד.
בנוסף, מבחן בעל סיכון נמוך לפני השיעור מכוון את כוונת התלמיד ללימוד נושא מסוים, בעוד מבחן שני לאחר השיעור מבטיח שימור נוסף של החומר. תכנית הלימודים הזו עוצבה להיות גמישה ומהנה וניתן ללמוד אותה כולה או בחלקים. הפרויקטים מתחילים בקטן והופכים מורכבים יותר לקראת סוף מחזור של 10 שבועות.
בנוסף, חידון קל-השפעה לפני השיעור קובע את כוונת התלמיד ללמוד נושא, בעוד שחידון שני לאחר השיעור מבטיח שימור נוסף. תוכנית הלימודים הזו עוצבה להיות גמישה ומהנה וניתן לעבור עליה בשלמותה או בחלקה. הפרויקטים מתחילים קטנים והופכים למורכבים יותר לקראת סוף מחזור של 10 שבועות.
> מצאו את [קוד ההתנהגות שלנו](CODE_OF_CONDUCT.md), [הנחיות לתרומה](CONTRIBUTING.md), [הנחיות לתרגום](TRANSLATIONS.md). נשמח למשוב בונה שלכם!
> מצאו את [קוד ההתנהגות שלנו](CODE_OF_CONDUCT.md), הנחיות [השתתפות](CONTRIBUTING.md), ו[תרגום](TRANSLATIONS.md). נשמח למשוב בונה!
## כל שיעור כולל:
- שרטוט אופציונלי
- וידאו משלים אופציונלי
- מבחן חימום לפני השיעור
- סיכום בעזרת ציור (אופציונלי)
- וידאו תוספתי (אופציונלי)
- חידון חימום לפני השיעור
- שיעור כתוב
- לשיעורים מבוססי פרויקט, מדריכים שלב אחרי שלב לבניית הפרויקט
- לשיעורים מבוססי פרויקט, מדריכים שלב אחר שלב לבניית הפרויקט
- בדיקות ידע
- אתגר
- קריאה משלים
- מטלה
- [מבחן לאחר השיעור](https://ff-quizzes.netlify.app/en/)
- קריאה תוספתית
- משימה
- [חידון לאחר השיעור](https://ff-quizzes.netlify.app/en/)
> **הערה על מבחנים**: כל המבחנים כלולים בתיקיית Quiz-App, עם 40 מבחנים בסך הכול של שלוש שאלות כל אחד. הם מקושרים מתוך השיעורים, אך אפליקציית הבחנים יכולה לפעל באופן מקומי או להיות משונעת לאזור Azure; עקבו אחרי ההוראות בתיקיית `quiz-app`. הם תורגמו בהדרגה.
> **הערה על חידונים**: כל החידונים נמצאים בתיקיית Quiz-App, ובסך הכל יש 40 חידונים עם שלוש שאלות בכל אחד. הם מקושרים מתוך השיעורים, אך אפליקציית החידונים יכולה לפעול באופן מקומי או להיות מועלת ל-Azure; עקבו אחרי ההוראות בתיקיית `quiz-app`. החידונים מיועדים להיטמע בהדרגה לשפות שונות.
## 🎓 דוגמאות ידידותיות למתחילים
**חדש במדעי הנתונים?** יצרנו תיקיית [דוגמאות מיוחדת](examples/README.md) עם קוד פשוט ומוסבר היטב שיעזור לכם להתחיל:
**חדש במדעי הנתונים?** יצרנו תיקיית [דוגמאות מיוחדת](examples/README.md) עם קודים פשוטים ומוסברים היטב שיעזרו לכם להתחיל:
- 🌟 **Hello World** - תוכנית מדעי הנתונים הראשונה שלכם
- 📂 **טען נתונים** - למדו לקרוא ולחקור מערכי נתונים
- 📊 **ניתוח פשוט** - חשבו סטטיסטיקות ומצאו דפוסים
- 📈 **ויזואליזציה בסיסית** - צרו דיאגרמות וגרפים
- 🔬 **פרויקט מהעולם האמיתי** - תהליך מלא מההתחלה ועד הסוף
- 📂 **טעינת נתונים** - למידת קריאה וחקר מערכי נתונים
| 03 | הגדרת נתונים | [הקדמה](1-Introduction/README.md) | כיצד נתונים מסווגים ומהמקורות הנפוצים שלהם. | [שיעור](1-Introduction/03-defining-data/README.md) | [ג'אזמין](https://www.twitter.com/paladique) |
| 05 | עבודה עם נתונים יחסיים | [עבודה עם נתונים](2-Working-With-Data/README.md) | מבוא לנתונים יחסיים ויסודות חקר וניתוח נתונים יחסיים בשפת שאילתות מובנית, הידועה גם בשם SQL (מבוטאת "סי-קוול"). | [שיעור](2-Working-With-Data/05-relational-databases/README.md) | [כריסטופר](https://www.twitter.com/geektrainer) | | |
| 06 | עבודה עם נתוני NoSQL | [עבודה עם נתונים](2-Working-With-Data/README.md) | מבוא לנתונים לא יחסיים, סוגיהם השונים ויסודות חקר וניתוח מסדי נתונים מסמך. | [שיעור](2-Working-With-Data/06-non-relational/README.md) | [ג'אזמין](https://twitter.com/paladique)|
| 07 | עבודה עם פייתון | [עבודה עם נתונים](2-Working-With-Data/README.md) | יסודות השימוש בפייתון לחקר נתונים עם ספריות כמו Pandas. מומלץ ידע בסיסי בתכנות פייתון. | [שיעור](2-Working-With-Data/07-python/README.md) [וידאו](https://youtu.be/dZjWOGbsN4Y) | [דמיטרי](http://soshnikov.com) |
| 08 | הכנת נתונים | [עבודה עם נתונים](2-Working-With-Data/README.md) | נושאים בטכניקות ניקוי והמרת נתונים כדי להתמודד עם אתגרים של נתונים חסרים, לא מדויקים או חלקיים. | [שיעור](2-Working-With-Data/08-data-preparation/README.md) | [ג'אזמין](https://www.twitter.com/paladique) |
| 01 | הגדרת מדעי הנתונים | [הקדמה](1-Introduction/README.md) | למידת מושגי הבסיס של מדעי הנתונים וכיצד הם קשורים לאינטליגנציה מלאכותית, למידת מכונה ו-big data. | [שיעור](1-Introduction/01-defining-data-science/README.md) [וידאו](https://youtu.be/beZ7Mb_oz9I) | [דמיטרי](http://soshnikov.com) |
| 05 | עבודה עם נתונים יחסיים | [עבודה עם נתונים](2-Working-With-Data/README.md) | מבוא לנתונים יחסיים והבסיס לחקר וניתוח נתונים יחסיים באמצעות שפת השאילתה המבנית (SQL). | [שיעור](2-Working-With-Data/05-relational-databases/README.md) | [כריסטופר](https://www.twitter.com/geektrainer) | | |
| 06 | עבודה עם נתוני NoSQL | [עבודה עם נתונים](2-Working-With-Data/README.md) | מבוא לנתונים לא יחסיים, סוגיהם השונים והבסיסלחקר וניתוח מסדי נתונים מסוג מסמך. | [שיעור](2-Working-With-Data/06-non-relational/README.md) | [ג'סמין](https://twitter.com/paladique)|
| 07 | עבודה עם פייתון | [עבודה עם נתונים](2-Working-With-Data/README.md) | יסודות השימוש בפייתון לחקר נתונים עם ספריות כגון Pandas. מומלץ להכיר יסודות בתכנות בפייתון. | [שיעור](2-Working-With-Data/07-python/README.md) [וידאו](https://youtu.be/dZjWOGbsN4Y) | [דמיטרי](http://soshnikov.com) |
| 08 | הכנת נתונים | [עבודה עם נתונים](2-Working-With-Data/README.md) | נושאים על טכניקות ניקוי והמרת נתונים להתמודד עם אתגרים של נתונים חסרים, לא מדויקים או לא שלמים. | [שיעור](2-Working-With-Data/08-data-preparation/README.md) | [ג'סמין](https://www.twitter.com/paladique) |
| 09 | ויזואליזציה של כמויות | [ויזואליזציה של נתונים](3-Data-Visualization/README.md) | למדו כיצד להשתמש ב-Matplotlib לויזואליזציה של נתוני ציפורים 🦆 | [שיעור](3-Data-Visualization/09-visualization-quantities/README.md) | [ג'ן](https://twitter.com/jenlooper) |
| 10 | ויזואליזציה של התפלגויות נתונים | [ויזואליזציה של נתונים](3-Data-Visualization/README.md) | ויזואליזציה של תצפיות ומגמות בתוך טווח. | [שיעור](3-Data-Visualization/10-visualization-distributions/README.md) | [ג'ן](https://twitter.com/jenlooper) |
| 11 | ויזואליזציה של פרופורציות | [ויזואליזציה של נתונים](3-Data-Visualization/README.md) | ויזואליזציה של אחוזים בדידים ומקובצים. | [שיעור](3-Data-Visualization/11-visualization-proportions/README.md) | [ג'ן](https://twitter.com/jenlooper) |
| 12 | ויזואליזציה של קשרים | [ויזואליזציה של נתונים](3-Data-Visualization/README.md) | ויזואליזציה של קשרים ומתאם בין קבוצות נתונים ומשתנים שלהם. | [שיעור](3-Data-Visualization/12-visualization-relationships/README.md) | [ג'ן](https://twitter.com/jenlooper) |
| 13 | ויזואליזציות משמעותיות | [ויזואליזציה של נתונים](3-Data-Visualization/README.md) | טכניקות והנחיות ליצירת ויזואליזציות בעלות ערך לפתרון בעיות בצורה יעילה ותובנות. | [שיעור](3-Data-Visualization/13-meaningful-visualizations/README.md) | [ג'ן](https://twitter.com/jenlooper) |
| 14 | מבוא למחזור חייו של מדעי הנתונים | [מחזור החיים](4-Data-Science-Lifecycle/README.md) | מבוא למחזור החיים של מדעי הנתונים וצעדו הראשון של רכישת ושליפת נתונים. | [שיעור](4-Data-Science-Lifecycle/14-Introduction/README.md) | [ג'אזמין](https://twitter.com/paladique) |
| 15 | ניתוח | [מחזור החיים](4-Data-Science-Lifecycle/README.md) | שלב זה במחזור חייו של מדעי הנתונים מתמקד בטכניקות לניתוח נתונים. | [שיעור](4-Data-Science-Lifecycle/15-analyzing/README.md) | [ג'אזמין](https://twitter.com/paladique) | | |
| 16 | תקשורת | [מחזור החיים](4-Data-Science-Lifecycle/README.md) | שלב זה במחזור חייו של מדעי הנתונים מתמקד בהצגת התובנות מהנתונים בצורה שמקל על מקבלי ההחלטות להבין אותן. | [שיעור](4-Data-Science-Lifecycle/16-communication/README.md) | [ג'יילן](https://twitter.com/JalenMcG) | | |
| 17 | מדעי הנתונים בענן | [נתוני ענן](5-Data-Science-In-Cloud/README.md) | סדרת שיעורים זו מציגה את מדעי הנתונים בענן ואת יתרונותיו. | [שיעור](5-Data-Science-In-Cloud/17-Introduction/README.md) | [טיפאני](https://twitter.com/TiffanySouterre) ו-[מוד](https://twitter.com/maudstweets) |
| 18 | מדעי הנתונים בענן | [נתוני ענן](5-Data-Science-In-Cloud/README.md) | אימון מודלים באמצעות כלים נמוכי קוד. |[שיעור](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [טיפאני](https://twitter.com/TiffanySouterre) ו-[מוד](https://twitter.com/maudstweets) |
| 19 | מדעי הנתונים בענן | [נתוני ענן](5-Data-Science-In-Cloud/README.md) | פריסת מודלים באמצעות Azure Machine Learning Studio. | [שיעור](5-Data-Science-In-Cloud/19-Azure/README.md)| [טיפאני](https://twitter.com/TiffanySouterre) ו-[מוד](https://twitter.com/maudstweets) |
| 20 | מדעי הנתונים בשטח | [בשדה](6-Data-Science-In-Wild/README.md) | פרויקטים מונחי מדעי הנתונים בעולם האמיתי. | [שיעור](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [ניטיה](https://twitter.com/nitya) |
| 10 | ויזואליזציה של התפלגויות נתונים | [ויזואליזציה של נתונים](3-Data-Visualization/README.md) | ויזואליזציה של תצפיות ומגמות במסגרת מסוימת. | [שיעור](3-Data-Visualization/10-visualization-distributions/README.md) | [ג'ן](https://twitter.com/jenlooper) |
| 11 | ויזואליזציה של אחוזים | [ויזואליזציה של נתונים](3-Data-Visualization/README.md) | ויזואליזציה של אחוזים בדידים וקבוצתיים. | [שיעור](3-Data-Visualization/11-visualization-proportions/README.md) | [ג'ן](https://twitter.com/jenlooper) |
| 12 | ויזואליזציה של קשרים | [ויזואליזציה של נתונים](3-Data-Visualization/README.md) | ויזואליזציה של חיבורים וקורלציות בין מערכי נתונים ומשתנים שלהם. | [שיעור](3-Data-Visualization/12-visualization-relationships/README.md) | [ג'ן](https://twitter.com/jenlooper) |
| 14 | מבוא למחזור חיי מדעי הנתונים | [מחזור חיים](4-Data-Science-Lifecycle/README.md) | מבוא למחזור חיי מדעי הנתונים והשלב הראשון של רכישת ושליפת נתונים. | [שיעור](4-Data-Science-Lifecycle/14-Introduction/README.md) | [ג'סמין](https://twitter.com/paladique) |
| 15 | ניתוח | [מחזור חיים](4-Data-Science-Lifecycle/README.md) | שלב במחזור החיים של מדעי הנתונים המתמקד בטכניקות לניתוח נתונים. | [שיעור](4-Data-Science-Lifecycle/15-analyzing/README.md) | [ג'סמין](https://twitter.com/paladique) | | |
| 16 | תקשורת | [מחזור חיים](4-Data-Science-Lifecycle/README.md) | שלב במחזור החיים של מדעי הנתונים המתמקד בהצגת תובנות מהנתונים באופן המקל על מקבלי ההחלטות להבין. | [שיעור](4-Data-Science-Lifecycle/16-communication/README.md) | [ג'יילן](https://twitter.com/JalenMcG) | | |
| 17 | מדעי נתונים בענן | [נתוני ענן](5-Data-Science-In-Cloud/README.md) | סדרת שיעורים זו מציגה את מדעי הנתונים בענן ואת יתרונותיו. | [שיעור](5-Data-Science-In-Cloud/17-Introduction/README.md) | [טיפאני](https://twitter.com/TiffanySouterre) ו-[מוד](https://twitter.com/maudstweets) |
| 18 | מדעי נתונים בענן | [נתוני ענן](5-Data-Science-In-Cloud/README.md) | אימון מודלים באמצעות כלים ללא קוד. |[שיעור](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [טיפאני](https://twitter.com/TiffanySouterre) ו-[מוד](https://twitter.com/maudstweets) |
| 19 | מדעי נתונים בענן | [נתוני ענן](5-Data-Science-In-Cloud/README.md) | פריסת מודלים עם Azure Machine Learning Studio. | [שיעור](5-Data-Science-In-Cloud/19-Azure/README.md)| [טיפאני](https://twitter.com/TiffanySouterre) ו-[מוד](https://twitter.com/maudstweets) |
| 20 | מדעי נתונים בשטח | [בשדה](6-Data-Science-In-Wild/README.md) | פרויקטים מבוססי מדעי נתונים בעולם האמיתי. | [שיעור](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [ניטיה](https://twitter.com/nitya) |
## GitHub Codespaces
עקבו אחרי השלבים הללו כדי לפתוח דוגמה זו ב-Codespace:
1. לחצו על תפריט הנפתחת של הקוד ובחרו באפשרות Open with Codespaces.
2. בחרו + New codespace בתחתית הפנל.
למידע נוסף, עיינו ב-[תיעוד GitHub](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace).
עקבו אחרי השלבים הבאים כדי לפתוח דוגמה זו ב-Codespace:
1. לחצו על תפריט הנפתח Code ובחרו באפשרות Open with Codespaces.
2. בחרו + New codespace בתחתית החלון.
למידע נוסף, קראו את [התיעוד של GitHub](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace).
## VSCode Remote - Containers
עקבו אחרי השלבים לפתיחת המאגר הזה במכולה באמצעות המכונה המקומית ו-VSCode עם תוסף VS Code Remote - Containers:
עקבו אחרי השלבים הבאים כדי לפתוח את המאגר הזה במכולה באמצעות המחשב המקומי ו-VSCode עם התוסף VS Code Remote - Containers:
1. אם זו הפעם הראשונה שבה אתם משתמשים במכולת פיתוח, ודאו שהמערכת שלכם עומדת בתנאי המקדימות (כגון התקנת Docker) לפי [המדריך למתחילים](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started).
1. אם זו הפעם הראשונה שבה אתם משתמשים במכולת פיתוח, וודאו שמערכתכם עומדת בדרישות המקדימות (למשל, התקנת Docker) ב[תיעוד התחלת העבודה](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started).
להשתמש במאגר זה, ניתן לפתוח את המאגר בנפח Docker מבודד:
כדי להשתמש במאגר זה, תוכלו לפתוח את המאגר בנפח מבודד בתוך Docker:
**הערה**: למעשה, זה ישתמש בפקודה Remote-Containers: **Clone Repository in Container Volume...** לשכפול קוד המקור בנפח Docker במקום במערכת הקבצים המקומית. [נפחים](https://docs.docker.com/storage/volumes/) הם המנגנון המועדף לשימור נתוני מכולה.
**הערה**: מאחורי הקלעים, פעולה זו משתמשת בפקודה Remote-Containers: **Clone Repository in Container Volume...** לשכפול קוד המקור בנפח Docker במקום במערכת הקבצים המקומית. [נפחים](https://docs.docker.com/storage/volumes/) הם המנגנון המועדף לשמירת נתוני מכולה.
או לפתוח עותק משוכפל או מורד מהמאגר במערכת המקומית:
או לפתוח גרסה שהורדתם או ששכפלתם למחשב מקומי:
- שכפלו מאגר זה למערכת הקבצים המקומית שלכם.
- לחצו F1 ובחרו בפקודה **Remote-Containers: Open Folder in Container...**.
- בחרו את העותק המשוכפל של התיקיה, המתינו שהמכולה תתחיל ונסו להשתמש.
- שכפלו את המאגר למערכת הקבצים המקומית.
- לחצו F1 ובחרו את הפקודה **Remote-Containers: Open Folder in Container...**.
- בחרו את התיקייה המשוכפלת, המתינו לפתיחת המכולה וניסו את הפעולות.
## גישה לא מקוונת
ניתן להפעיל דוקומנטציה זו במצב לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). פתחו סניף (fork) למאגר, [התקינו את Docsify](https://docsify.js.org/#/quickstart) במחשב המקומי, ואז בתיקיית השורש במאגר, הקלידו `docsify serve`. האתר יוגש על הפורט 3000 בלוקאלהוסט: `localhost:3000`.
ניתן להפעיל תיעוד זה במצב לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). פוצו את המאגר, [התקינו Docsify](https://docsify.js.org/#/quickstart) במחשב המקומי, ואז בתיקיית השורש של המאגר, הקלידו `docsify serve`. האתר יוגש על נמל 3000 בכתובת המקומית שלכם: `localhost:3000`.
> שימו לב, מחברות לא יוצגו דרך Docsify, לכן כשאתם צריכים להפעיל מחברת, עשו זאת בנפרד ב-VS Code עם קרנל פייתון פועל.
> שימו לב, מחברות עבודה לא יוצגו דרך Docsify, לכן כאשר תצטרכו להריץ מחברת עבודה, עשו זאת בנפרד ב-VS Code עם מאיץ Python.
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
**נתקלים בבעיות?** בדקו את [מדריך פתרון בעיות](TROUBLESHOOTING.md) שלנו לפתרונות לבעיות נפוצות.
**מתקשים?** בדקו את [מדריך פתרון הבעיות](TROUBLESHOOTING.md) שלנו לפתרונות לבעיות נפוצות.
אם אתם נתקעים או יש לכם שאלות לגבי בניית אפליקציות AI, הצטרפו ללומדים אחרים ולמפתחים מנוסים בדיונים על MCP. זוהי קהילה תומכת שבה שאלות מתקבלות בברכה והידע משותף בחופשיות.
אם אתם תקועים או יש לכם שאלות על בניית אפליקציות AI. הצטרפו ללומדים אחרים ומפתחים מנוסים בדיונים על MCP. זו קהילה תומכת בה שאלות מתקבלות בברכה והידע משותף בחופשיות.
אם יש לכם משוב על מוצר או שגיאות במהלך הבנייה, בקרו ב:
אם יש לכם משוב על המוצר או שגיאות בעת בנייה בקרו:
[](https://aka.ms/foundry/forum)
@ -249,5 +259,5 @@
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**כתב ויתור**:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עלולים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפה המקורית מהווה את המקור הרשמי והמהימן. למידע קריטי מומלץ לבצע תרגום מקצועי על ידי בני אדם. איננו נושאים באחריות לכל אי הבנות או פרשנויות שגויות הנובעות משימוש בתרגום זה.
מסמך זה תורגם באמצעות שירות תרגום בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכות. למידע קריטי מומלץ להשתמש בתרגום מקצועי אנושי. איננו אחראים לכל אי הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה.
[](https://youtu.be/beZ7Mb_oz9I)
[](https://youtu.be/beZ7Mb_oz9I)
## [Quiz voorafgaand aan de les](https://ff-quizzes.netlify.app/en/ds/quiz/0)
@ -144,7 +144,7 @@ Als we het nog ingewikkelder willen maken, kunnen we de tijd die nodig is voor e
In deze uitdaging gaan we proberen concepten te vinden die relevant zijn voor het vakgebied Data Science door naar teksten te kijken. We nemen een Wikipedia-artikel over Data Science, downloaden en verwerken de tekst, en bouwen vervolgens een woordwolk zoals deze:


Bezoek [`notebook.ipynb`](../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') om de code door te nemen. Je kunt de code ook uitvoeren en zien hoe het alle datatransformaties in real-time uitvoert.
"# Uitdaging: Tekstanalyseren over Data Science\n",
"# Uitdaging: Tekstanalyse over Data Science\n",
"\n",
"In dit voorbeeld doen we een eenvoudige oefening die alle stappen van een traditioneel data science-proces omvat. Je hoeft geen code te schrijven, je kunt gewoon op de cellen hieronder klikken om ze uit te voeren en het resultaat te bekijken. Als uitdaging word je aangemoedigd om deze code met verschillende gegevens uit te proberen.\n",
"In dit voorbeeld doen we een eenvoudige oefening die alle stappen van een traditioneel data science-proces beslaat. Je hoeft geen code te schrijven, je kunt gewoon op de cellen hieronder klikken om ze uit te voeren en het resultaat te observeren. Als uitdaging wordt je aangemoedigd om deze code uit te proberen met verschillende gegevens.\n",
"\n",
"## Doel\n",
"\n",
"In deze les hebben we verschillende concepten besproken die te maken hebben met Data Science. Laten we proberen meer gerelateerde concepten te ontdekken door middel van **tekstmining**. We beginnen met een tekst over Data Science, halen daar trefwoorden uit en proberen vervolgens het resultaat te visualiseren.\n",
"In deze les hebben we verschillende concepten met betrekking tot Data Science besproken. Laten we proberen meer gerelateerde concepten te ontdekken door wat **text mining** te doen. We beginnen met een tekst over Data Science, halen er sleutelwoorden uit, en proberen vervolgens het resultaat te visualiseren.\n",
"\n",
"Als tekst gebruik ik de pagina over Data Science van Wikipedia:\n"
"Als tekst zal ik de pagina over Data Science van Wikipedia gebruiken:\n"
],
"metadata": {}
},
@ -34,7 +34,7 @@
"source": [
"## Stap 1: De gegevens ophalen\n",
"\n",
"De eerste stap in elk data science-proces is het verkrijgen van de gegevens. We gebruiken de bibliotheek `requests` om dit te doen:\n"
"De eerste stap in elk data science proces is het ophalen van de gegevens. We zullen hiervoor de `requests`-bibliotheek gebruiken:\n"
],
"metadata": {}
},
@ -68,43 +68,41 @@
"source": [
"## Stap 2: Het transformeren van de gegevens\n",
"\n",
"De volgende stap is om de gegevens om te zetten in een vorm die geschikt is voor verwerking. In ons geval hebben we de HTML-broncode van de pagina gedownload, en we moeten deze omzetten naar platte tekst.\n",
"De volgende stap is om de gegevens om te zetten in de juiste vorm voor verwerking. In ons geval hebben we HTML-broncode van de pagina gedownload en moeten we deze omzetten in platte tekst.\n",
"\n",
"Er zijn veel manieren waarop dit kan worden gedaan. We zullen gebruik maken van het eenvoudigste ingebouwde [HTMLParser](https://docs.python.org/3/library/html.parser.html)-object van Python. We moeten de `HTMLParser`-klasse uitbreiden en de code definiëren die alle tekst binnen HTML-tags verzamelt, behalve de `<script>`- en `<style>`-tags.\n"
"Er zijn veel manieren om dit te doen. We zullen [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/) gebruiken, een populaire Python-bibliotheek voor het parsen van HTML. BeautifulSoup stelt ons in staat om specifieke HTML-elementen te targeten, zodat we ons kunnen richten op de hoofdinhoud van het artikel van Wikipedia en sommige navigatiemenu's, zijbalken, voetteksten en andere irrelevante inhoud kunnen verminderen (hoewel sommige standaardtekst mogelijk nog blijft staan).\n"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"Eerst moeten we de BeautifulSoup-bibliotheek installeren voor HTML-parsing:\n"
"from bs4 import BeautifulSoup\r\n\r\n# Parse the HTML content\r\nsoup = BeautifulSoup(text, 'html.parser')\r\n\r\n# Extract only the main article content from Wikipedia\r\n# Wikipedia uses 'mw-parser-output' class for the main article content\r\ncontent = soup.find('div', class_='mw-parser-output')\r\n\r\ndef clean_wikipedia_content(content_node):\r\n \"\"\"Remove common non-article elements from a Wikipedia content node.\"\"\"\r\n # Strip jump links, navboxes, reference lists/superscripts, edit sections, TOC, sidebars, etc.\r\n selectors = [\r\n '.mw-jump-link',\r\n '.navbox',\r\n '.reflist',\r\n 'sup.reference',\r\n '.mw-editsection',\r\n '.hatnote',\r\n '.metadata',\r\n '.infobox',\r\n '#toc',\r\n '.toc',\r\n '.sidebar',\r\n ]\r\n for selector in selectors:\r\n for el in content_node.select(selector):\r\n el.decompose()\r\n\r\nif content:\r\n # Clean the content node to better approximate article text only.\r\n clean_wikipedia_content(content)\r\n text = content.get_text(separator=' ', strip=True)\r\n print(text[:1000])\r\nelse:\r\n print(\"Could not find main content. Using full page text.\")\r\n text = soup.get_text(separator=' ', strip=True)\r\n print(text[:1000])"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" Data science - Wikipedia Data science From Wikipedia, the free encyclopedia Jump to navigation Jump to search Interdisciplinary field of study focused on deriving knowledge and insights from data Not to be confused with information science . The existence of Comet NEOWISE (here depicted as a series of red dots) was discovered by analyzing astronomical survey data acquired by a space telescope , the Wide-field Infrared Survey Explorer . Part of a series on Machine learning and data mining Problems Classification Clustering Regression Anomaly detection AutoML Association rules Reinforcement learning Structured prediction Feature engineering Feature learning Online learning Semi-supervised learning Unsupervised learning Learning to rank Grammar induction Supervised learning ( classification • regression ) Decision trees Ensembles Bagging Boosting Random forest k -NN Linear regression Naive Bayes Artificial neural networks Logistic regression Perceptron Relevance vector machine \n"
"Data science From Wikipedia, the free encyclopedia Interdisciplinary field of study focused on deriving knowledge and insights from data Data science is an interdisciplinary academic field that uses statistics, scientific computing, scientific methods, processes, algorithms and systems to extract or extrapolate knowledge and insights from noisy, structured, and unstructured data. Data science also integrates domain knowledge from the underlying application domain. Data science is multifaceted and can be described as a science, a research paradigm, a research method, a discipline, a workflow, and a profession.\n"
]
}
],
@ -115,9 +113,9 @@
"source": [
"## Stap 3: Inzichten verkrijgen\n",
"\n",
"De belangrijkste stap is om onze data om te zetten in een vorm waaruit we inzichten kunnen halen. In ons geval willen we trefwoorden uit de tekst halen en bekijken welke trefwoorden het meest betekenisvol zijn.\n",
"De belangrijkste stap is om onze data om te zetten in een vorm waaruit we inzichten kunnen halen. In ons geval willen we sleutelwoorden uit de tekst halen en zien welke sleutelwoorden betekenisvoller zijn.\n",
"\n",
"We gebruiken een Python-bibliotheek genaamd [RAKE](https://github.com/aneesha/RAKE) voor het extraheren van trefwoorden. Laten we eerst deze bibliotheek installeren, mocht deze nog niet aanwezig zijn:\n"
"We zullen de Python-bibliotheek genaamd [RAKE](https://github.com/aneesha/RAKE) gebruiken voor het extraheren van sleutelwoorden. Laten we deze bibliotheek eerst installeren voor het geval deze niet aanwezig is: \n"
],
"metadata": {}
},
@ -162,7 +160,7 @@
{
"cell_type": "markdown",
"source": [
"De belangrijkste functionaliteit is beschikbaar via het `Rake`-object, dat we kunnen aanpassen met enkele parameters. In ons geval stellen we de minimale lengte van een trefwoord in op 5 tekens, de minimale frequentie van een trefwoord in het document op 3, en het maximale aantal woorden in een trefwoord op 2. Voel je vrij om met andere waarden te experimenteren en het resultaat te observeren.\n"
"De hoofdfunctie is beschikbaar via het `Rake`-object, dat we kunnen aanpassen met enkele parameters. In ons geval stellen we de minimale lengte van een trefwoord in op 5 tekens, de minimale frequentie van een trefwoord in het document op 3, en het maximale aantal woorden in een trefwoord op 2. Voel je vrij om met andere waarden te experimenteren en het resultaat te bekijken.\n"
],
"metadata": {}
},
@ -211,11 +209,12 @@
{
"cell_type": "markdown",
"source": [
"We hebben een lijst met termen verkregen, samen met de bijbehorende mate van belangrijkheid. Zoals je kunt zien, staan de meest relevante disciplines, zoals machine learning en big data, bovenaan de lijst.\n",
"\n",
"## Stap 4: Het resultaat visualiseren\n",
"We hebben een lijst met termen verkregen, samen met de bijbehorende mate van belangrijkheid. Zoals je kunt zien, zijn de belangrijkste disciplines, zoals machine learning en big data, aanwezig in de lijst op topposities.\n",
"\n",
"Mensen kunnen gegevens het beste interpreteren in visuele vorm. Daarom is het vaak zinvol om de gegevens te visualiseren om inzichten te verkrijgen. We kunnen de `matplotlib`-bibliotheek in Python gebruiken om een eenvoudige verdeling van de trefwoorden met hun relevantie te plotten:\n"
"## Stap 4: Visualisatie van het resultaat\n",
"\n",
"Mensen kunnen de gegevens het beste interpreteren in visuele vorm. Daarom is het vaak zinvol om de gegevens te visualiseren om inzichten te verkrijgen. We kunnen de `matplotlib`-bibliotheek in Python gebruiken om een eenvoudige verdeling van de zoekwoorden met hun relevantie te plotten:\n"
],
"metadata": {}
},
@ -252,7 +251,7 @@
{
"cell_type": "markdown",
"source": [
"Er is echter een nog betere manier om woordfrequenties te visualiseren - met behulp van **Word Cloud**. We zullen een andere bibliotheek moeten installeren om de word cloud van onze trefwoordenlijst te plotten.\n"
"Er is echter een nog betere manier om woordfrequenties te visualiseren - met behulp van **Word Cloud**. We zullen een andere bibliotheek moeten installeren om de woordwolk te plotten vanuit onze lijst met trefwoorden.\n"
],
"metadata": {}
},
@ -268,7 +267,7 @@
{
"cell_type": "markdown",
"source": [
"`WordCloud`-object is verantwoordelijk voor het verwerken van originele tekst, of een vooraf berekende lijst van woorden met hun frequenties, en retourneert een afbeelding, die vervolgens kan worden weergegeven met `matplotlib`:\n"
"`WordCloud` object is verantwoordelijk voor het verwerken van ofwel originele tekst, of een vooraf berekende lijst van woorden met hun frequenties, en retourneert een afbeelding, die vervolgens kan worden weergegeven met `matplotlib`:\n"
],
"metadata": {}
},
@ -372,9 +371,9 @@
{
"cell_type": "markdown",
"source": [
"Je kunt zien dat de woordwolk er nu indrukwekkender uitziet, maar het bevat ook veel ruis (bijvoorbeeld niet-gerelateerde woorden zoals `Retrieved on`). Daarnaast krijgen we minder trefwoorden die uit twee woorden bestaan, zoals *data scientist* of *computer science*. Dit komt doordat het RAKE-algoritme veel beter werk levert bij het selecteren van goede trefwoorden uit tekst. Dit voorbeeld illustreert het belang van data-voorbewerking en opschoning, omdat een helder beeld aan het einde ons in staat stelt betere beslissingen te nemen.\n",
"Je kunt zien dat de woordwolk er nu indrukwekkender uitziet, maar het bevat ook veel ruis (bijv. niet-gerelateerde woorden zoals `Retrieved on`). Daarnaast krijgen we minder trefwoorden die uit twee woorden bestaan, zoals *data scientist* of *computer science*. Dit komt doordat het RAKE-algoritme veel beter presteert bij het selecteren van goede trefwoorden uit tekst. Dit voorbeeld illustreert het belang van data pre-processing en schoonmaken, omdat een helder beeld aan het eind ons in staat stelt betere beslissingen te nemen.\n",
"\n",
"In deze oefening hebben we een eenvoudig proces doorlopen om enige betekenis te halen uit Wikipedia-tekst, in de vorm van trefwoorden en een woordwolk. Dit voorbeeld is vrij simpel, maar het laat goed alle typische stappen zien die een datawetenschapper doorloopt bij het werken met data, van data-acquisitie tot visualisatie.\n",
"In deze oefening hebben we een eenvoudig proces doorlopen om betekenis te halen uit Wikipedia-tekst, in de vorm van trefwoorden en een woordwolk. Dit voorbeeld is vrij eenvoudig, maar het toont goed alle typische stappen die een data scientist zal nemen bij het werken met data, beginnend bij het verzamelen van data tot visualisatie.\n",
"\n",
"In onze cursus zullen we al deze stappen in detail bespreken.\n"
],
@ -394,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Disclaimer**: \nDit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Disclaimer**:\nDit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat automatische vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het oorspronkelijke document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"# Uitdaging: Tekstanalyseren over Data Science\n",
"# Uitdaging: Tekstanalyse over Data Science\n",
"\n",
"> *In deze notebook experimenteren we met het gebruik van verschillende URL's - Wikipedia-artikel over Machine Learning. Je zult zien dat, in tegenstelling tot Data Science, dit artikel veel termen bevat, wat de analyse problematischer maakt. We moeten een andere manier bedenken om de data op te schonen na het uitvoeren van keyword-extractie, om van enkele veelvoorkomende, maar nietszeggende woordcombinaties af te komen.*\n",
"> *In dit notitieboekje experimenteren we met het gebruik van een andere URL - Wikipedia-artikel over Machine Learning. Je ziet dat, in tegenstelling tot Data Science, dit artikel veel termen bevat, wat de analyse problematischer maakt. We moeten een andere manier bedenken om de data op te schonen na het uitvoeren van keyword-extractie, om van sommige frequente, maar niet-zo-betekenisvolle woordcombinaties af te komen.*\n",
"\n",
"In dit voorbeeld doen we een eenvoudige oefening die alle stappen van een traditioneel data science-proces omvat. Je hoeft geen code te schrijven, je kunt gewoon op de cellen hieronder klikken om ze uit te voeren en het resultaat te bekijken. Als uitdaging word je aangemoedigd om deze code met andere data uit te proberen.\n",
"In dit voorbeeld doen we een eenvoudige oefening die alle stappen van een traditioneel data science-proces omvat. Je hoeft geen code te schrijven; je kunt gewoon op de cellen hieronder klikken om ze uit te voeren en het resultaat te bekijken. Als uitdaging wordt je aangemoedigd om deze code met andere data uit te proberen.\n",
"\n",
"## Doel\n",
"\n",
"In deze les hebben we verschillende concepten besproken die te maken hebben met Data Science. Laten we proberen meer gerelateerde concepten te ontdekken door middel van **tekstmining**. We beginnen met een tekst over Data Science, halen daaruit sleutelwoorden, en proberen vervolgens het resultaat te visualiseren.\n",
"In deze les hebben we verschillende concepten besproken die gerelateerd zijn aan Data Science. Laten we proberen meer gerelateerde concepten te ontdekken door wat **tekstmining** toe te passen. We beginnen met een tekst over Data Science, halen er keywords uit, en proberen daarna het resultaat te visualiseren.\n",
"\n",
"Als tekst gebruik ik de pagina over Data Science van Wikipedia:\n"
],
@ -35,9 +35,9 @@
{
"cell_type": "markdown",
"source": [
"## Stap 1: De gegevens ophalen\n",
"## Stap 1: De gegevens verkrijgen\n",
"\n",
"De eerste stap in elk datawetenschapsproces is het ophalen van de gegevens. We gebruiken de bibliotheek `requests` om dit te doen:\n"
"De eerste stap in elk datawetenschapsproces is het verkrijgen van de gegevens. We zullen de `requests`-bibliotheek gebruiken om dat te doen:\n"
],
"metadata": {}
},
@ -69,45 +69,43 @@
{
"cell_type": "markdown",
"source": [
"## Stap 2: De gegevens transformeren\n",
"## Stap 2: Het transformeren van de gegevens\n",
"\n",
"De volgende stap is om de gegevens om te zetten in een vorm die geschikt is voor verwerking. In ons geval hebben we de HTML-broncode van de pagina gedownload, en we moeten deze omzetten naar platte tekst.\n",
"De volgende stap is het omzetten van de gegevens in een vorm die geschikt is voor verwerking. In ons geval hebben we de HTML-broncode van de pagina gedownload, en moeten we deze omzetten naar platte tekst.\n",
"\n",
"Er zijn veel manieren om dit te doen. We zullen gebruik maken van het eenvoudigste ingebouwde [HTMLParser](https://docs.python.org/3/library/html.parser.html)-object van Python. We moeten de `HTMLParser`-klasse uitbreiden en de code definiëren die alle tekst binnen HTML-tags verzamelt, behalve de `<script>`- en `<style>`-tags.\n"
"Er zijn veel manieren om dit te doen. We zullen [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/), een populaire Python-bibliotheek voor het parsen van HTML, gebruiken. BeautifulSoup stelt ons in staat om specifieke HTML-elementen te targeten, zodat we ons kunnen richten op de hoofdinhoud van het artikel uit Wikipedia en sommige navigatiemenu’s, zijbalken, voetteksten en andere irrelevante inhoud kunnen verminderen (hoewel sommige sjabloonteksten mogelijk nog blijven staan).\n"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"Eerst moeten we de BeautifulSoup-bibliotheek installeren voor HTML-parsing:\n"
"from bs4 import BeautifulSoup\r\n\r\n# Parse the HTML content\r\nsoup = BeautifulSoup(text, 'html.parser')\r\n\r\n# Extract only the main article content from Wikipedia\r\n# Wikipedia uses 'mw-parser-output' class for the main article content\r\ncontent = soup.find('div', class_='mw-parser-output')\r\n\r\ndef clean_wikipedia_content(content_node):\r\n \"\"\"Remove common non-article elements from a Wikipedia content node.\"\"\"\r\n # Strip jump links, navboxes, reference lists/superscripts, edit sections, TOC, sidebars, etc.\r\n selectors = [\r\n '.mw-jump-link',\r\n '.navbox',\r\n '.reflist',\r\n 'sup.reference',\r\n '.mw-editsection',\r\n '.hatnote',\r\n '.metadata',\r\n '.infobox',\r\n '#toc',\r\n '.toc',\r\n '.sidebar',\r\n ]\r\n for selector in selectors:\r\n for el in content_node.select(selector):\r\n el.decompose()\r\n\r\nif content:\r\n # Clean the content node to better approximate article text only.\r\n clean_wikipedia_content(content)\r\n text = content.get_text(separator=' ', strip=True)\r\n print(text[:1000])\r\nelse:\r\n print(\"Could not find main content. Using full page text.\")\r\n text = soup.get_text(separator=' ', strip=True)\r\n print(text[:1000])"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" Machine learning - Wikipedia Machine learning From Wikipedia, the free encyclopedia Jump to navigation Jump to search Study of algorithms that improve automatically through experience For the journal, see Machine Learning (journal) . \"Statistical learning\" redirects here. For statistical learning in linguistics, see statistical learning in language acquisition . Part of a series on Artificial intelligence Major goals Artificial general intelligence Planning Computer vision General game playing Knowledge reasoning Machine learning Natural language processing Robotics Approaches Symbolic Deep learning Bayesian networks Evolutionary algorithms Philosophy Ethics Existential risk Turing test Chinese room Control problem Friendly AI History Timeline Progress AI winter Technology Applications Projects Programming languages Glossary Glossary v t e Part of a series on Machine learning and data mining Problems Classification Clustering Regression Anomaly detection Data Cleaning AutoML Associ\n"
"Machine learning From Wikipedia, the free encyclopedia Study of algorithms that improve automatically through experience Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of statistical algorithms that can learn from data and generalize to unseen data, and thus perform tasks without explicit instructions. Recently, artificial neural networks have been able to surpass many previous approaches in performance. ML finds application in many fields, including natural language processing, computer vision, speech recognition, email filtering, agriculture, and medicine.\n"
]
}
],
@ -116,11 +114,11 @@
{
"cell_type": "markdown",
"source": [
"## Stap 3: Inzichten verkrijgen\n",
"## Stap 3: Verkrijgen van Inzichten\n",
"\n",
"De belangrijkste stap is om onze gegevens om te zetten in een vorm waaruit we inzichten kunnen halen. In ons geval willen we trefwoorden uit de tekst halen en bekijken welke trefwoorden het meest betekenisvol zijn.\n",
"De belangrijkste stap is om onze data om te zetten in een vorm waaruit we inzichten kunnen halen. In ons geval willen we zoekwoorden uit de tekst extraheren en zien welke zoekwoorden betekenisvoller zijn.\n",
"\n",
"We gebruiken een Python-bibliotheek genaamd [RAKE](https://github.com/aneesha/RAKE) voor het extraheren van trefwoorden. Laten we eerst deze bibliotheek installeren, voor het geval deze nog niet aanwezig is:\n"
"We zullen de Python-bibliotheek genaamd [RAKE](https://github.com/aneesha/RAKE) gebruiken voor zoekwoordanalyse. Laten we eerst deze bibliotheek installeren voor het geval deze nog niet aanwezig is: \n"
],
"metadata": {}
},
@ -172,7 +170,7 @@
{
"cell_type": "markdown",
"source": [
"De belangrijkste functionaliteit is beschikbaar via het `Rake`-object, dat we kunnen aanpassen met enkele parameters. In ons geval stellen we de minimale lengte van een trefwoord in op 5 tekens, de minimale frequentie van een trefwoord in het document op 3, en het maximale aantal woorden in een trefwoord op 2. Voel je vrij om met andere waarden te experimenteren en het resultaat te observeren.\n"
"De hoofdfunctionaliteit is beschikbaar via het `Rake`-object, dat we kunnen aanpassen met behulp van enkele parameters. In ons geval stellen we de minimale lengte van een trefwoord in op 5 tekens, de minimale frequentie van een trefwoord in het document op 3, en het maximale aantal woorden in een trefwoord op 2. Voel je vrij om met andere waarden te experimenteren en observeer het resultaat.\n"
],
"metadata": {}
},
@ -353,11 +351,11 @@
{
"cell_type": "markdown",
"source": [
"We hebben een lijst met termen verkregen, samen met de bijbehorende mate van belangrijkheid. Zoals je kunt zien, staan de meest relevante disciplines, zoals machine learning en big data, bovenaan de lijst.\n",
"We hebben een lijst met termen verkregen, samen met de bijbehorende mate van belangrijkheid. Zoals je kunt zien, zijn de meest relevante disciplines, zoals machine learning en big data, aanwezig in de lijst op top posities.\n",
"\n",
"## Stap 4: Het resultaat visualiseren\n",
"\n",
"Mensen kunnen gegevens het beste interpreteren in visuele vorm. Daarom is het vaak zinvol om de gegevens te visualiseren om inzichten te verkrijgen. We kunnen de `matplotlib`-bibliotheek in Python gebruiken om een eenvoudige verdeling van de trefwoorden met hun relevantie te plotten:\n"
"Mensen kunnen de gegevens het beste interpreteren in visuele vorm. Daarom is het vaak zinvol om de gegevens te visualiseren om inzichten te verkrijgen. We kunnen de `matplotlib`bibliotheek in Python gebruiken om een eenvoudige verdeling van de trefwoorden met hun relevantie te plotten:\n"
],
"metadata": {}
},
@ -392,7 +390,7 @@
{
"cell_type": "markdown",
"source": [
"Er is echter een nog betere manier om woordfrequenties te visualiseren - met behulp van **Word Cloud**. We zullen een andere bibliotheek moeten installeren om de word cloud van onze trefwoordenlijst te plotten.\n"
"Er is echter een nog betere manier om woordfrequenties te visualiseren - met **Word Cloud**. We zullen een andere bibliotheek moeten installeren om de woordwolk uit onze lijst met sleutelwoorden te plotten.\n"
],
"metadata": {}
},
@ -408,7 +406,7 @@
{
"cell_type": "markdown",
"source": [
"`WordCloud`-object is verantwoordelijk voor het verwerken van originele tekst, of een vooraf berekende lijst van woorden met hun frequenties, en retourneert een afbeelding, die vervolgens kan worden weergegeven met behulp van `matplotlib`:\n"
"`WordCloud` object is verantwoordelijk voor het verwerken van ofwel originele tekst, of een vooraf berekende lijst van woorden met hun frequenties, en retourneert een afbeelding, die vervolgens kan worden weergegeven met `matplotlib`:\n"
],
"metadata": {}
},
@ -490,11 +488,11 @@
{
"cell_type": "markdown",
"source": [
"Je kunt zien dat de woordwolk er nu indrukwekkender uitziet, maar het bevat ook veel ruis (bijvoorbeeld niet-gerelateerde woorden zoals `Retrieved on`). Daarnaast krijgen we minder trefwoorden die uit twee woorden bestaan, zoals *data scientist* of *computer science*. Dit komt doordat het RAKE-algoritme veel beter is in het selecteren van goede trefwoorden uit tekst. Dit voorbeeld laat zien hoe belangrijk het is om data vooraf te verwerken en op te schonen, omdat een helder beeld aan het einde ons in staat stelt betere beslissingen te nemen.\n",
"Je kunt zien dat de woordwolk er nu indrukwekkender uitziet, maar deze bevat ook veel ruis (bijv. niet-gerelateerde woorden zoals `Retrieved on`). Ook krijgen we minder trefwoorden die uit twee woorden bestaan, zoals *data scientist* of *computer science*. Dit komt omdat het RAKE-algoritme veel beter presteert bij het selecteren van goede trefwoorden uit tekst. Dit voorbeeld illustreert het belang van data pre-processing en schoonmaken, omdat een duidelijk beeld aan het einde ons in staat stelt betere beslissingen te nemen.\n",
"\n",
"In deze oefening hebben we een eenvoudig proces doorlopen om enige betekenis uit Wikipedia-tekst te halen, in de vorm van trefwoorden en een woordwolk. Dit voorbeeld is vrij simpel, maar het laat goed alle typische stappen zien die een datawetenschapper doorloopt bij het werken met data, van het verkrijgen van data tot aan de visualisatie.\n",
"In deze oefening zijn we door een eenvoudig proces gegaan om wat betekenis uit Wikipedia-tekst te halen, in de vorm van trefwoorden en een woordwolk. Dit voorbeeld is vrij eenvoudig, maar het toont goed alle typische stappen die een data scientist zal nemen bij het werken met data, beginnend bij data-acquisitie tot en met visualisatie.\n",
"\n",
"In onze cursus zullen we al deze stappen in detail bespreken.\n"
"In onze cursus zullen we al deze stappen in detail bespreken.\n"
],
"metadata": {}
},
@ -502,7 +500,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Disclaimer**:\nDit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Disclaimer**:\nDit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat automatische vertalingen fouten of onjuistheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
Statistiek en Kansberekening zijn twee sterk verwante gebieden binnen de wiskunde die zeer relevant zijn voor Data Science. Het is mogelijk om met data te werken zonder diepgaande kennis van wiskunde, maar het is toch beter om ten minste enkele basisconcepten te begrijpen. Hier bieden we een korte introductie die je op weg helpt.
## [Quiz voorafgaand aan de les](https://ff-quizzes.netlify.app/en/ds/quiz/6)
@ -30,7 +30,7 @@ Het is moeilijker om de kansverdeling van een continue variabele te beschrijven,
We kunnen alleen praten over de kans dat een variabele binnen een bepaald interval van waarden valt, bijvoorbeeld P(t<sub>1</sub>≤X<t<sub>2</sub>). In dit geval wordt de kansverdeling beschreven door een **kansdichtheidsfunctie** p(x), zodanig dat
Een continue variant van de uniforme verdeling wordt **continue uniforme verdeling** genoemd, die wordt gedefinieerd op een eindig interval. De kans dat de waarde X in een interval van lengte l valt, is evenredig aan l en loopt op tot 1.
@ -73,11 +73,11 @@ Wanneer we data uit het echte leven analyseren, zijn ze vaak geen willekeurige v
Hier is de boxplot die het gemiddelde, de mediaan en de kwartielen voor onze data toont:
Omdat onze data informatie bevat over verschillende speler **rollen**, kunnen we ook een boxplot per rol maken - dit stelt ons in staat om een idee te krijgen van hoe de parameters verschillen per rol. Deze keer bekijken we de lengte:


Dit diagram suggereert dat, gemiddeld genomen, de lengte van eerste honkspelers hoger is dan de lengte van tweede honkspelers. Later in deze les leren we hoe we deze hypothese formeler kunnen testen en hoe we kunnen aantonen dat onze data statistisch significant is om dit te bewijzen.
@ -85,7 +85,7 @@ Dit diagram suggereert dat, gemiddeld genomen, de lengte van eerste honkspelers
Om te zien wat de verdeling van onze data is, kunnen we een grafiek maken die een **histogram** wordt genoemd. De X-as bevat een aantal verschillende gewichtintervallen (zogenaamde **bins**), en de verticale as toont het aantal keren dat onze willekeurige variabele steekproef binnen een bepaald interval viel.


Uit dit histogram kun je zien dat alle waarden gecentreerd zijn rond een bepaald gemiddeld gewicht, en hoe verder we van dat gewicht af gaan, hoe minder gewichten van die waarde worden aangetroffen. Met andere woorden, het is zeer onwaarschijnlijk dat het gewicht van een honkbalspeler sterk afwijkt van het gemiddelde gewicht. De variantie van gewichten toont de mate waarin gewichten waarschijnlijk verschillen van het gemiddelde.
Als we het histogram van de gegenereerde steekproeven plotten, zien we een afbeelding die erg lijkt op die hierboven. En als we het aantal steekproeven en het aantal bins vergroten, kunnen we een afbeelding van een normale verdeling genereren die dichter bij ideaal is:


*Normale Verdeling met mean=0 en std.dev=1*
@ -224,7 +224,7 @@ array([[1. , 0.52959196],
In ons geval geeft de waarde 0.53 aan dat er enige correlatie is tussen het gewicht en de lengte van een persoon. We kunnen ook de spreidingsdiagram maken van één waarde tegen de andere om de relatie visueel te zien:


> Meer voorbeelden van correlatie en covariantie zijn te vinden in [bijbehorende notebook](notebook.ipynb).


> Foto door <ahref="https://unsplash.com/@dawson2406?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Stephen Dawson</a> op <ahref="https://unsplash.com/s/photos/data?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
In deze lessen ontdek je hoe Data Science wordt gedefinieerd en leer je over ethische overwegingen waar een datawetenschapper rekening mee moet houden. Je leert ook hoe data wordt gedefinieerd en krijgt een introductie tot statistiek en kansberekening, de kerngebieden van Data Science.
Hoewel databases zeer efficiënte manieren bieden om gegevens op te slaan en te raadplegen met behulp van querytalen, is de meest flexibele manier van gegevensverwerking het schrijven van je eigen programma om gegevens te manipuleren. In veel gevallen is een databasequery een effectievere aanpak. Maar in sommige gevallen, wanneer complexere gegevensverwerking nodig is, kan dit niet eenvoudig met SQL worden gedaan.
Gegevensverwerking kan worden geprogrammeerd in elke programmeertaal, maar er zijn bepaalde talen die beter geschikt zijn voor het werken met data. Datawetenschappers geven meestal de voorkeur aan een van de volgende talen:
@ -64,7 +64,7 @@ print(f"Length of index is {len(idx)}")


Stel nu dat we elke week een feestje organiseren voor vrienden en we nemen 10 extra pakken ijs mee voor het feest. We kunnen een andere series maken, geïndexeerd per week, om dat te laten zien:
```python
@ -75,7 +75,7 @@ Wanneer we twee series bij elkaar optellen, krijgen we het totaal:


> **Opmerking** dat we niet de eenvoudige syntaxis `total_items+additional_items` gebruiken. Als we dat deden, zouden we veel `NaN` (*Not a Number*) waarden krijgen in de resulterende series. Dit komt omdat er ontbrekende waarden zijn voor sommige indexpunten in de `additional_items` series, en het optellen van `NaN` met iets resulteert in `NaN`. Daarom moeten we de parameter `fill_value` specificeren tijdens het optellen.
@ -84,7 +84,7 @@ Met tijdreeksen kunnen we ook **herbemonsteren** met verschillende tijdsinterval
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
```


### DataFrame
@ -210,7 +210,7 @@ Het eerste probleem waarop we ons zullen richten is het modelleren van de epidem
Omdat we willen demonstreren hoe je met data omgaat, nodigen we je uit om [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) te openen en deze van boven naar beneden te lezen. Je kunt ook cellen uitvoeren en enkele uitdagingen aangaan die we aan het einde voor je hebben achtergelaten.
> Als je niet weet hoe je code uitvoert in Jupyter Notebook, bekijk dan [dit artikel](https://soshnikov.com/education/how-to-execute-notebooks-from-github/).
@ -232,7 +232,7 @@ Een volledig voorbeeld van het analyseren van deze dataset met behulp van de [Te
Open [`notebook-papers.ipynb`](notebook-papers.ipynb) en lees deze van boven naar beneden. Je kunt ook cellen uitvoeren en enkele uitdagingen aangaan die we aan het einde voor je hebben achtergelaten.


> Foto door <ahref="https://unsplash.com/@swimstaralex?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Alexander Sinn</a> op <ahref="https://unsplash.com/s/photos/data?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
In deze lessen leer je enkele manieren waarop data kan worden beheerd, gemanipuleerd en gebruikt in applicaties. Je leert over relationele en niet-relationele databases en hoe data daarin kan worden opgeslagen. Je leert de basisprincipes van werken met Python om data te beheren, en je ontdekt enkele van de vele manieren waarop je met Python data kunt beheren en analyseren.
Laat nu dezelfde data zien met een honingkleurenschema om te laten zien hoe de prijs zich door de jaren heen ontwikkelt. Dit kun je doen door een 'hue'-parameter toe te voegen om de verandering per jaar te tonen:
@ -51,7 +51,7 @@ Laat nu dezelfde data zien met een honingkleurenschema om te laten zien hoe de p
Met deze kleurenschemawijziging kun je duidelijk zien dat er door de jaren heen een sterke stijging is in de honingprijs per pond. Als je een steekproef uit de data neemt om dit te controleren (bijvoorbeeld Arizona), zie je een patroon van prijsstijgingen per jaar, met enkele uitzonderingen:
Is dit een eenvoudig geval van vraag en aanbod? Door factoren zoals klimaatverandering en kolonie-instorting is er misschien minder honing beschikbaar om te kopen, waardoor de prijs stijgt?
✅ Omdat Seaborn data rond één lijn aggregeert, toont het "de meerdere metingen bij elke x-waarde door het gemiddelde en het 95% betrouwbaarheidsinterval rond het gemiddelde te plotten". [Bron](https://seaborn.pydata.org/tutorial/relational.html). Dit tijdrovende gedrag kan worden uitgeschakeld door `ci=None` toe te voegen.
@ -105,7 +105,7 @@ Vraag: Kunnen we in 2003 ook een piek in de honingvoorraad zien? Wat als je kijk
Antwoord: Niet echt. Als je kijkt naar de totale productie, lijkt deze in dat specifieke jaar zelfs te zijn toegenomen, hoewel de hoeveelheid geproduceerde honing over het algemeen in deze jaren afneemt.
@ -130,7 +130,7 @@ sns.relplot(
```
In deze visualisatie kun je de opbrengst per kolonie en het aantal kolonies door de jaren heen vergelijken, naast elkaar met een wrap ingesteld op 3 voor de kolommen:
Voor deze dataset valt er niets bijzonders op met betrekking tot het aantal kolonies en hun opbrengst, jaar na jaar en staat na staat. Is er een andere manier om een correlatie tussen deze twee variabelen te vinden?
Hoewel er rond het jaar 2003 niets opvallends te zien is, eindigen we deze les toch met een iets positiever noot: hoewel het aantal kolonies over het algemeen afneemt, stabiliseert het aantal kolonies zich, zelfs als hun opbrengst per kolonie afneemt.
Hier installeer je het `ggplot2` pakket en importeer je het vervolgens in de werkruimte met het commando `library("ggplot2")`. Om een plot te maken in ggplot, gebruik je de functie `ggplot()` en specificeer je de dataset, x- en y-variabelen als attributen. In dit geval gebruiken we de functie `geom_line()` omdat we een lijnplot willen maken.
Wat valt je meteen op? Er lijkt minstens één uitschieter te zijn - dat is een behoorlijke vleugelspanwijdte! Een vleugelspanwijdte van meer dan 2000 centimeter komt overeen met meer dan 20 meter - zijn er Pterodactylen in Minnesota? Laten we dit onderzoeken.
We specificeren de hoek in het `theme` en geven de x- en y-as labels met `xlab()` en `ylab()` respectievelijk. De `ggtitle()` geeft een naam aan de grafiek/plot.
Zelfs met de rotatie van de labels ingesteld op 45 graden, zijn er te veel om te lezen. Laten we een andere strategie proberen: label alleen die uitschieters en plaats de labels binnen de grafiek. Je kunt een spreidingsdiagram gebruiken om meer ruimte te maken voor de labeling:
@ -91,7 +91,7 @@ Wat gebeurt hier? Je hebt de functie `geom_point()` gebruikt om spreidingspunten
We hebben een nieuwe dataframe `birds_filtered` gemaakt en vervolgens een spreidingsdiagram geplot. Door uitschieters te filteren, zijn je gegevens nu meer samenhangend en begrijpelijk.
In de volgende snippet installeren we de [dplyr](https://www.rdocumentation.org/packages/dplyr/versions/0.7.8) en [lubridate](https://www.rdocumentation.org/packages/lubridate/versions/1.8.0) pakketten om gegevens te manipuleren en te groeperen om een gestapeld staafdiagram te plotten. Eerst groepeer je de gegevens op de `Category` van de vogel en vat je de kolommen `MinLength`, `MaxLength`, `MinBodyMass`, `MaxBodyMass`, `MinWingspan`, `MaxWingspan` samen. Vervolgens plot je het staafdiagram met het `ggplot2` pakket en specificeer je de kleuren voor de verschillende categorieën en de labels.


Dit staafdiagram is echter onleesbaar omdat er te veel niet-gegroepeerde gegevens zijn. Je moet alleen de gegevens selecteren die je wilt plotten, dus laten we kijken naar de lengte van vogels op basis van hun categorie.
Je telt eerst unieke waarden in de `Category` kolom en sorteert ze vervolgens in een nieuwe dataframe `birds_count`. Deze gesorteerde gegevens worden vervolgens op hetzelfde niveau gefactoreerd zodat ze op een gesorteerde manier worden geplot. Met `ggplot2` plot je vervolgens de gegevens in een staafdiagram. De `coord_flip()` plot horizontale balken.
Dit staafdiagram geeft een goed overzicht van het aantal vogels in elke categorie. In één oogopslag zie je dat het grootste aantal vogels in deze regio behoort tot de categorie Eenden/Ganzen/Watervogels. Minnesota is het 'land van 10.000 meren', dus dit is niet verrassend!


Dit geeft een overzicht van de algemene verdeling van lichaamslengte per vogelorde, maar het is niet de optimale manier om echte distributies weer te geven. Die taak wordt meestal uitgevoerd door een histogram te maken.
## Werken met histogrammen
@ -47,7 +47,7 @@ Dit geeft een overzicht van de algemene verdeling van lichaamslengte per vogelor


Zoals je kunt zien, valt het merendeel van de 400+ vogels in deze dataset in het bereik van minder dan 2000 voor hun maximale lichaamsmassa. Krijg meer inzicht in de gegevens door de parameter `bins` te wijzigen naar een hoger aantal, bijvoorbeeld 30:
@ -55,7 +55,7 @@ Zoals je kunt zien, valt het merendeel van de 400+ vogels in deze dataset in het
Dit diagram toont de distributie op een iets meer gedetailleerde manier. Een diagram dat minder naar links is scheefgetrokken, kan worden gemaakt door ervoor te zorgen dat je alleen gegevens selecteert binnen een bepaald bereik:
✅ Probeer enkele andere filters en gegevenspunten. Om de volledige distributie van de gegevens te zien, verwijder je de `['MaxBodyMass']` filter om gelabelde distributies weer te geven.


Er lijkt geen goede correlatie te zijn tussen minimale vleugelspanwijdte en beschermingsstatus. Test andere elementen van de dataset met deze methode. Je kunt ook verschillende filters proberen. Vind je enige correlatie?
@ -126,7 +126,7 @@ Laten we nu werken met dichtheidsdiagrammen!
Je kunt zien hoe het diagram het vorige voor minimale vleugelspanwijdte gegevens weerspiegelt; het is gewoon iets vloeiender. Als je die hoekige MaxBodyMass-lijn in het tweede diagram dat je hebt gemaakt opnieuw wilt bekijken, kun je deze heel goed gladstrijken door deze opnieuw te maken met deze methode:
@ -134,7 +134,7 @@ Je kunt zien hoe het diagram het vorige voor minimale vleugelspanwijdte gegevens
Voila, een taartdiagram dat de verhoudingen van deze data toont volgens deze twee klassen van champignons. Het is erg belangrijk om de volgorde van de labels correct te krijgen, vooral hier, dus zorg ervoor dat je de volgorde controleert waarmee de labelarray is gebouwd!
Met een wafeldiagram kun je duidelijk de verhoudingen van hoedkleuren in deze champignon-dataset zien. Interessant genoeg zijn er veel champignons met groene hoeden!
In deze les heb je drie manieren geleerd om verhoudingen te visualiseren. Eerst moet je je data groeperen in categorieën en vervolgens beslissen wat de beste manier is om de data weer te geven - taart, donut of wafel. Allemaal zijn ze smakelijk en geven de gebruiker een direct overzicht van een dataset.
Laat nu dezelfde data zien met een honingkleurenschema om te laten zien hoe de prijs zich door de jaren heen ontwikkelt. Dit kun je doen door een 'scale_color_gradientn'-parameter toe te voegen om de verandering per jaar weer te geven:
@ -52,7 +52,7 @@ Laat nu dezelfde data zien met een honingkleurenschema om te laten zien hoe de p
ggplot(honey, aes(x = priceperlb, y = state, color=year)) +
Met deze kleurenschemawijziging kun je duidelijk zien dat er door de jaren heen een sterke stijging is in de prijs per pond honing. Als je een steekproef uit de data neemt om dit te controleren (bijvoorbeeld Arizona), zie je een patroon van prijsstijgingen per jaar, met enkele uitzonderingen:
Is dit een eenvoudig geval van vraag en aanbod? Door factoren zoals klimaatverandering en het instorten van kolonies is er misschien minder honing beschikbaar, waardoor de prijs jaar na jaar stijgt?
Antwoord: Niet echt. Als je kijkt naar de totale productie, lijkt deze in dat specifieke jaar zelfs te zijn toegenomen, hoewel de hoeveelheid geproduceerde honing over het algemeen afneemt in deze jaren.
In deze visualisatie kun je de opbrengst per kolonie en het aantal kolonies door de jaren heen vergelijken, naast elkaar met een wrap ingesteld op 3 kolommen:
Voor deze dataset valt er niets bijzonders op met betrekking tot het aantal kolonies en hun opbrengst, jaar na jaar en staat na staat. Is er een andere manier om een correlatie tussen deze twee variabelen te vinden?
Hoewel er rond 2003 niets opvallends te zien is, eindigen we deze les met een iets positiever noot: hoewel het aantal kolonies over het algemeen afneemt, stabiliseert het aantal kolonies, zelfs als hun opbrengst per kolonie afneemt.
@ -38,25 +38,25 @@ In eerdere lessen heb je geëxperimenteerd met het maken van allerlei interessan
Zelfs als een datawetenschapper zorgvuldig het juiste type grafiek kiest, zijn er genoeg manieren waarop data kan worden weergegeven om een punt te bewijzen, vaak ten koste van de integriteit van de data. Er zijn veel voorbeelden van misleidende grafieken en infographics!
[](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie")
[](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie")
> 🎥 Klik op de afbeelding hierboven voor een conferentietoespraak over misleidende grafieken
Deze grafiek keert de X-as om om het tegenovergestelde van de waarheid te tonen, gebaseerd op de datum:
[Deze grafiek](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) is nog misleidender, omdat het oog naar rechts wordt getrokken om te concluderen dat COVID-gevallen in de loop van de tijd zijn afgenomen in verschillende provincies. Als je echter goed naar de data kijkt, zie je dat de datums zijn herschikt om die misleidende dalende trend te creëren.
Dit beruchte voorbeeld gebruikt kleur EN een omgekeerde Y-as om te misleiden: in plaats van te concluderen dat het aantal schietincidenten steeg na de invoering van gun-vriendelijke wetgeving, wordt het oog misleid om te denken dat het tegenovergestelde waar is:
Het vergelijken van onvergelijkbare zaken is nog een schimmige truc. Er is een [geweldige website](https://tylervigen.com/spurious-correlations) over 'spurious correlations' die 'feiten' toont zoals de correlatie tussen het echtscheidingspercentage in Maine en de consumptie van margarine. Een Reddit-groep verzamelt ook de [lelijke toepassingen](https://www.reddit.com/r/dataisugly/top/?t=all) van data.
@ -91,13 +91,13 @@ Label je assen, geef een legenda indien nodig, en bied tooltips aan voor een bet
Als je data tekstueel en uitgebreid is op de X-as, kun je de tekst schuin zetten voor betere leesbaarheid. [plot3D](https://cran.r-project.org/web/packages/plot3D/index.html) biedt 3D-plotmogelijkheden als je data dit ondersteunt. Geavanceerde datavisualisaties kunnen hiermee worden gemaakt.
Sommige van de beste datavisualisaties van vandaag zijn geanimeerd. Shirley Wu heeft geweldige voorbeelden gemaakt met D3, zoals '[film flowers](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', waarbij elke bloem een visualisatie van een film is. Een ander voorbeeld voor de Guardian is 'bussed out', een interactieve ervaring die visualisaties combineert met Greensock en D3, plus een scrollytelling-artikelformaat om te laten zien hoe NYC omgaat met zijn daklozenprobleem door mensen de stad uit te sturen.
> "Bussed Out: How America Moves its Homeless" van [the Guardian](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). Visualisaties door Nadieh Bremer & Shirley Wu
@ -107,7 +107,7 @@ Hoewel deze les niet diepgaand genoeg is om deze krachtige visualisatiebibliothe
Je voltooit een webapp die een geanimeerd overzicht van dit sociale netwerk weergeeft. Het gebruikt een bibliotheek die is gebouwd om een [visualisatie van een netwerk](https://github.com/emiliorizzo/vue-d3-network) te maken met Vue.js en D3. Wanneer de app draait, kun je de knooppunten op het scherm verplaatsen om de data te herschikken.


> Foto door <ahref="https://unsplash.com/@jenna2980?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Jenna Lee</a> op <ahref="https://unsplash.com/s/photos/bees-in-a-meadow?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
Het visualiseren van data is een van de belangrijkste taken van een datawetenschapper. Beelden zeggen meer dan duizend woorden, en een visualisatie kan je helpen allerlei interessante aspecten van je data te identificeren, zoals pieken, uitschieters, groeperingen, tendensen en meer, die je kunnen helpen het verhaal van je data te begrijpen.
@ -16,7 +16,7 @@ Op dit punt heb je waarschijnlijk al door dat data science een proces is. Dit pr
Deze les richt zich op 3 delen van de lifecycle: vastleggen, verwerken en onderhouden.


> Foto door [Berkeley School of Information](https://ischoolonline.berkeley.edu/data-science/what-is-data-science/)
## Vastleggen
@ -92,7 +92,7 @@ Verken de [Team Data Science Process lifecycle](https://docs.microsoft.com/en-us
|Team Data Science Process (TDSP)|Cross-industry standard process for data mining (CRISP-DM)|
|--|--|
| |  |
| |  |
| Afbeelding door [Microsoft](https://docs.microsoft.comazure/architecture/data-science-process/lifecycle) | Afbeelding door [Data Science Process Alliance](https://www.datascience-pm.com/crisp-dm-2/) |
> Foto door <ahref="https://unsplash.com/@headwayio?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Headway</a> op <ahref="https://unsplash.com/s/photos/communication?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
In deze lessen verken je enkele aspecten van de levenscyclus van Data Science, waaronder analyse en communicatie rondom data.
> Foto door [Jelleke Vanooteghem](https://unsplash.com/@ilumire) van [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape)
Als het gaat om data science met big data, kan de cloud een echte gamechanger zijn. In de komende drie lessen gaan we bekijken wat de cloud is en waarom deze zo nuttig kan zijn. We gaan ook een dataset over hartfalen verkennen en een model bouwen om de kans op hartfalen bij iemand te beoordelen. We zullen de kracht van de cloud gebruiken om een model op twee verschillende manieren te trainen, implementeren en gebruiken. Eén manier maakt gebruik van alleen de gebruikersinterface in een Low code/No code-stijl, de andere manier maakt gebruik van de Azure Machine Learning Software Developer Kit (Azure ML SDK).
@ -32,7 +32,7 @@ Dankzij de democratisering van AI vinden ontwikkelaars het nu gemakkelijker om A
* [Datawetenschap in de Gezondheidszorg](https://data-flair.training/blogs/data-science-in-healthcare/) - benadrukt toepassingen zoals medische beeldvorming (bijv. MRI, röntgenfoto, CT-scan), genomica (DNA-sequencing), medicijnontwikkeling (risicobeoordeling, succesvoorspelling), voorspellende analyse (patiëntenzorg en logistiek), ziekteopsporing en -preventie, etc.
 Afbeeldingscredit: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/)
 Afbeeldingscredit: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/)
De afbeelding toont andere domeinen en voorbeelden van het toepassen van technieken uit de datawetenschap. Wil je meer toepassingen verkennen? Bekijk de sectie [Review & Zelfstudie](../../../../6-Data-Science-In-Wild/20-Real-World-Examples) hieronder.
Azure Cloud Advocates bij Microsoft bieden met plezier een 10 weken durend curriculum aan van 20 lessen over Data Science. Elke les bevat quizzen vóór en na de les, schriftelijke instructies om de les te voltooien, een oplossing en een opdracht. Onze projectgebaseerde pedagogiek stelt je in staat om te leren terwijl je bouwt, een bewezen manier om nieuwe vaardigheden te laten beklijven.
Azure Cloud Advocates bij Microsoft zijn verheugd om een 10-weekse, 20-les curriculum aan te bieden over Data Science. Elke les bevat quizzen vóór en na de les, geschreven instructies om de les te voltooien, een oplossing en een opdracht. Onze projectgerichte pedagogiek stelt je in staat om te leren terwijl je bouwt, een bewezen manier om nieuwe vaardigheden te 'verankeren'.
> Deze repository bevat meer dan 50 taalvertalingen wat de downloadgrootte aanzienlijk vergroot. Om te klonen zonder vertalingen, gebruik sparse checkout:
>
> Deze repository bevat meer dan 50 taalvertalingen, wat de downloadgrootte aanzienlijk vergroot. Om te klonen zonder vertalingen, gebruik sparse checkout:
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Dit geeft je alles wat je nodig hebt om de cursus te voltooien met een veel snellere download.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**Als je extra vertalingen wilt laten ondersteunen, zie je lijst [hier](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**Als je wilt dat extra vertalingen worden ondersteund, staan deze vermeld [hier](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
We hebben een lopende Discord learn with AI-serie, leer meer en doe mee via [Learn with AI Series](https://aka.ms/learnwithai/discord) van 18 - 30 september 2025. Je krijgt tips en trucs over het gebruik van GitHub Copilot voor Data Science.
We hebben een Discord leerreeks over AI gaande, leer meer en sluit je aan bij [Learn with AI Series](https://aka.ms/learnwithai/discord) van 18 - 30 september 2025. Je ontvangt tips en trucs voor het gebruik van GitHub Copilot voor Data Science.

@ -59,35 +69,35 @@ We hebben een lopende Discord learn with AI-serie, leer meer en doe mee via [Lea
Begin met de volgende bronnen:
- [Student Hub pagina](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) Op deze pagina vind je starterbronnen, studentpakketten en zelfs manieren om een gratis certificaatvoucher te bemachtigen. Dit is een pagina die je wilt bookmarken en af en toe raadplegen, omdat we de inhoud minstens maandelijks vernieuwen.
- [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) Word lid van een wereldwijde gemeenschap van studentambassadeurs, dit kan jouw weg naar Microsoft zijn.
- [Student Hub pagina](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) Op deze pagina vind je bronnen voor beginners, studentenpakketten en zelfs manieren om een gratis certificaatvoucher te krijgen. Dit is een pagina die je wilt toevoegen aan je favorieten en af en toe wilt controleren, aangezien we minstens maandelijks inhoud wisselen.
- [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) Word lid van een wereldwijde community van studentambassadeurs, dit kan jouw ingang zijn tot Microsoft.
# Aan de slag
## 📚 Documentatie
- **[Installatiehandleiding](INSTALLATION.md)** - Stapsgewijze installatie-instructies voor beginners
- **[Gebruikershandleiding](USAGE.md)** - Voorbeelden en veelvoorkomende workflows
- **[Installatiegids](INSTALLATION.md)** - Stapsgewijze installatie-instructies voor beginners
- **[Gebruiksgids](USAGE.md)** - Voorbeelden en veelvoorkomende workflows
- **[Probleemoplossing](TROUBLESHOOTING.md)** - Oplossingen voor veelvoorkomende problemen
- **[Bijdragen gids](CONTRIBUTING.md)** - Hoe bijdragen aan dit project
- **[Voor Docenten](for-teachers.md)** - Lesgeven begeleiding en klaslokaalbronnen
- **[Bijdragegids](CONTRIBUTING.md)** - Hoe bij te dragen aan dit project
- **[Voor docenten](for-teachers.md)** - Lesmateriaal en bronnen voor de klas
## 👨🎓 Voor Studenten
> **Volledig beginners**: Nieuw in data science? Begin met onze [beginnersvriendelijke voorbeelden](examples/README.md)! Deze eenvoudige, goed van commentaar voorziene voorbeelden helpen je de basis te begrijpen voordat je het volledige curriculum induikt.
> **[Studenten](https://aka.ms/student-page)**: om dit curriculum zelfstandig te gebruiken, fork je de hele repo en maak je de oefeningen zelfstandig, beginnend met een quiz voor de les. Lees dan de les en voltooi de rest van de activiteiten. Probeer de projecten te maken door de lessen te begrijpen in plaats van de oplossingscode te kopiëren; die code is echter beschikbaar in de /solutions-mappen van elke projectgerichte les. Een andere optie is om een studiegroep met vrienden te vormen en samen de inhoud door te nemen. Voor verdere studie raden we [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum) aan.
> **Volledige Beginners**: Nieuw bij data science? Begin met onze [beginnersvriendelijke voorbeelden](examples/README.md)! Deze eenvoudige, goed toegelichte voorbeelden helpen je de basis te begrijpen voordat je aan het volledige curriculum begint.
> **[Studenten](https://aka.ms/student-page)**: om dit curriculum zelfstandig te gebruiken, fork je de gehele repo en maak je de oefeningen zelfstandig, beginnend met een quiz vóór de les. Lees daarna de les en voltooi de overige activiteiten. Probeer de projecten te maken door de lessen te begrijpen in plaats van simpelweg de oplossing te kopiëren; die code is echter beschikbaar in de /solutions-mappen in elke projectgerichte les. Een andere optie is om een studiegroep te vormen met vrienden en samen door de inhoud te gaan. Voor verdere studie raden we [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum) aan.
**Snelstart:**
1. Bekijk de [Installatiehandleiding](INSTALLATION.md) om je omgeving in te stellen
2. Bekijk de [Gebruikershandleiding](USAGE.md) om te leren hoe je met het curriculum werkt
3. Begin met Les 1 en werk de lessen opeenvolgend door
4. Sluit je aan bij onze [Discord-community](https://aka.ms/ds4beginners/discord) voor ondersteuning
1. Bekijk de [Installatiegids](INSTALLATION.md) om je omgeving in te stellen
2. Bekijk de [Gebruiksgids](USAGE.md) om te leren werken met het curriculum
3. Begin met Les 1 en werk deze achtereenvolgens door
4. Word lid van onze [Discord-community](https://aka.ms/ds4beginners/discord) voor ondersteuning
## 👩🏫 Voor Docenten
> **Docenten**: we hebben [enkele suggesties opgenomen](for-teachers.md) over hoe je dit curriculum kunt gebruiken. We horen graag je feedback [in ons discussieforum](https://github.com/microsoft/Data-Science-For-Beginners/discussions)!
> **Docenten**: we hebben [enkele suggesties opgenomen](for-teachers.md) over het gebruik van dit curriculum. We horen graag je feedback [in ons discussieforum](https://github.com/microsoft/Data-Science-For-Beginners/discussions)!
@ -95,36 +105,36 @@ Begin met de volgende bronnen:
## Pedagogiek
We hebben twee pedagogische uitgangspunten gekozen bij het opbouwen van dit curriculum: ervoor zorgen dat het projectgebaseerd is en dat het frequente quizzes bevat. Aan het einde van deze serie zullen studenten de basisprincipes van data science hebben geleerd, inclusief ethische concepten, data voorbereiding, verschillende manieren van werken met data, datavisualisatie, data-analyse, praktijkvoorbeelden van data science en meer.
We hebben twee pedagogische principes gekozen bij het opbouwen van dit curriculum: ervoor zorgen dat het projectgericht is en dat het frequente quizzen bevat. Aan het einde van deze reeks hebben studenten de basisprincipes van datawetenschap geleerd, inclusief ethische concepten, gegevensvoorbereiding, verschillende manieren om met data te werken, datavisualisatie, data-analyse, praktijkvoorbeelden van datawetenschap en meer.
Daarnaast zet een quiz met lage druk voorafgaand aan een les de intentie van de student om een onderwerp te leren, terwijl een tweede quiz na de les zorgt voor verdere verwerking. Dit curriculum is ontworpen om flexibel en leuk te zijn en kan volledig of gedeeltelijk worden gevolgd. De projecten beginnen klein en worden steeds complexer aan het einde van de cyclus van 10 weken.
Daarnaast zet een quiz met lage inzet vóór een les de intentie van de leerling om een onderwerp te leren, terwijl een tweede quiz na de les zorgt voor verdere retentie. Dit curriculum is ontworpen om flexibel en leuk te zijn en kan geheel of gedeeltelijk worden gevolgd. De projecten beginnen klein en worden steeds complexer tegen het einde van de tienweekse cyclus.
> Vind onze [Gedragscode](CODE_OF_CONDUCT.md), [Bijdragen](CONTRIBUTING.md), [Vertalingsrichtlijnen](TRANSLATIONS.md). We waarderen je constructieve feedback!
> Vind onze [Gedragscode](CODE_OF_CONDUCT.md), [Bijdragen](CONTRIBUTING.md), [Vertaling](TRANSLATIONS.md) richtlijnen. We verwelkomen je constructieve feedback!
## Elke les bevat:
- Optionele schetsnotitie
- Optionele sketchnote
- Optionele aanvullende video
- Voorafgaande opwarm-quiz
- Voor-les warming-up quiz
- Geschreven les
- Voor projectgebaseerde lessen, stapsgewijze handleidingen voor het bouwen van het project
- Voor projectgebaseerde lessen, stapsgewijze handleidingen om het project te bouwen
- Kenniscontroles
- Een uitdaging
- Aanvullende leesstof
- Opdracht
- [Quiz na de les](https://ff-quizzes.netlify.app/en/)
> **Een opmerking over quizzes**: Alle quizzes staan in de Quiz-App map, voor in totaal 40 quizzes met elk drie vragen. Ze zijn gekoppeld vanuit de lessen, maar de quiz-app kan lokaal worden uitgevoerd of gedeployed naar Azure; volg de instructies in de `quiz-app` map. Ze worden geleidelijk gelokaliseerd.
> **Een opmerking over quizzen**: Alle quizzen bevinden zich in de Quiz-App map, in totaal 40 quizzen met elk drie vragen. Ze zijn gekoppeld vanuit de lessen, maar de quiz-app kan lokaal worden uitgevoerd of worden ingezet op Azure; volg de instructies in de `quiz-app` map. Ze worden geleidelijk gelokaliseerd.
## 🎓 Voor beginners toegankelijke voorbeelden
## 🎓 Voor beginners geschikte voorbeelden
**Nieuw in Data Science?** We hebben een speciale [voorbeelden map](examples/README.md) gemaakt met eenvoudig, goed becommentarieerd code om je op weg te helpen:
**Nieuw in Data Science?** We hebben een speciale [voorbeeldmap](examples/README.md) gemaakt met eenvoudige, goed toegelichte code om je op weg te helpen:
- 🌟 **Hello World** - Je eerste data science programma
- 📂 **Data laden** - Leer datasets te lezen en verkennen
- 📂 **Gegevens laden** - Leer datasets lezen en verkennen
- 📊 **Eenvoudige analyse** - Bereken statistieken en vind patronen
- 📈 **Basale visualisatie** - Maak grafieken en diagrammen
- 🔬 **Praktijkproject** - Volledige workflow van begin tot eind
- 📈 **Basisvisualisatie** - Maak grafieken en diagrammen
- 🔬 **Project uit de praktijk** - Volledig workflow van begin tot eind
Elk voorbeeld bevat gedetailleerde commentaren die elke stap uitleggen, perfect voor absolute beginners!
@ -133,69 +143,69 @@ Elk voorbeeld bevat gedetailleerde commentaren die elke stap uitleggen, perfect
## Lessen
||
||
|:---:|
| Data Science Voor Beginners: Routekaart - _Schetsnotitie door [@nitya](https://twitter.com/nitya)_ |
| Data Science Voor Beginners: Routekaart - _Sketchnote door [@nitya](https://twitter.com/nitya)_ |
| 01 | Definitie van Data Science | [Introductie](1-Introduction/README.md) | Leer de basisconcepten van data science en hoe het gerelateerd is aan kunstmatige intelligentie, machine learning, en big data. | [les](1-Introduction/01-defining-data-science/README.md) [video](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) |
| 02 | Ethiek in Data Science | [Introductie](1-Introduction/README.md) | Concepten, uitdagingen & kaders rond data-ethiek. | [les](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) |
| 03 | Definitie van Data | [Introductie](1-Introduction/README.md) | Hoe data wordt geclassificeerd en de gebruikelijke bronnen. | [les](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) |
| 04 | Introductie in Statistiek & Kansrekening | [Introductie](1-Introduction/README.md) | De wiskundige technieken van waarschijnlijkheid en statistiek om data te begrijpen. | [les](1-Introduction/04-stats-and-probability/README.md) [video](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) |
| 05 | Werken met Relationele Data | [Werken met Data](2-Working-With-Data/README.md) | Introductie tot relationele data en de basis van het verkennen en analyseren van relationele data met de Structured Query Language, ook bekend als SQL (uitgesproken als “see-quell”). | [les](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | |
| 06 | Werken met NoSQL Data | [Werken met Data](2-Working-With-Data/README.md) | Introductie tot niet-relationele data, de verschillende types ervan en de basis van het verkennen en analyseren van documentdatabases. | [les](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)|
| 07 | Werken met Python | [Werken met Data](2-Working-With-Data/README.md) | Basis van het gebruik van Python voor data-exploratie met bibliotheken zoals Pandas. Aanbevolen is een fundamenteel begrip van Python programmeren. | [les](2-Working-With-Data/07-python/README.md) [video](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) |
| 08 | Data Voorbereiding | [Werken met Data](2-Working-With-Data/README.md) | Onderwerpen over data technieken voor het opschonen en transformeren van data om uitdagingen met ontbrekende, onnauwkeurige, of onvolledige data aan te pakken. | [les](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) |
| 09 | Visualiseren van Hoeveelheden | [Datavisualisatie](3-Data-Visualization/README.md) | Leer hoe je Matplotlib gebruikt om vogeldata te visualiseren 🦆 | [les](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) |
| 10 | Visualiseren van Verdelingen van Data | [Datavisualisatie](3-Data-Visualization/README.md) | Visualiseren van observaties en trends binnen een interval. | [les](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) |
| 11 | Visualiseren van Verhoudingen | [Datavisualisatie](3-Data-Visualization/README.md) | Visualiseren van discrete en gegroepeerde percentages. | [les](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) |
| 12 | Visualiseren van Relaties | [Datavisualisatie](3-Data-Visualization/README.md) | Visualiseren van verbanden en correlaties tussen datasets en hun variabelen. | [les](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) |
| 13 | Betekenisvolle Visualisaties | [Datavisualisatie](3-Data-Visualization/README.md) | Technieken en richtlijnen om je visualisaties waardevol te maken voor effectieve probleemoplossing en inzichten. | [les](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) |
| 14 | Introductie in de Data Science levenscyclus | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Introductie tot de data science levenscyclus en de eerste stap van het verkrijgen en extraheren van data. | [les](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) |
| 15 | Analyseren | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Deze fase van de data science levenscyclus richt zich op technieken voor data-analyse. | [les](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | |
| 16 | Communicatie | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Deze fase van de data science levenscyclus richt zich op het presenteren van inzichten uit data op een manier die het makkelijker maakt voor besluitvormers om te begrijpen. | [les](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | |
| 17 | Data Science in de Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Deze reeks lessen introduceert data science in de cloud en de voordelen ervan. | [les](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) en [Maud](https://twitter.com/maudstweets) |
| 01 | Wat is Data Science | [Introductie](1-Introduction/README.md) | Leer de basisbegrippen achter datawetenschap en hoe het verband houdt met kunstmatige intelligentie, machine learning en big data. | [les](1-Introduction/01-defining-data-science/README.md) [video](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) |
| 02 | Ethiek in Data Science | [Introductie](1-Introduction/README.md) | Concepten, uitdagingen en kaders rondom data-ethiek. | [les](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) |
| 03 | Wat zijn Data | [Introductie](1-Introduction/README.md) | Hoe data wordt geclassificeerd en de gebruikelijke bronnen ervan. | [les](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) |
| 04 | Introductie tot Statistiek & Kansrekening | [Introductie](1-Introduction/README.md) | De wiskundige technieken van kansrekening en statistiek om data te begrijpen. | [les](1-Introduction/04-stats-and-probability/README.md) [video](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) |
| 05 | Werken met Relationele Data | [Werken met Data](2-Working-With-Data/README.md) | Introductie tot relationele data en de basis van het verkennen en analyseren van relationele data met de Structured Query Language, ook wel SQL genoemd (uitgesproken als "see-quell"). | [les](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | |
| 06 | Werken met NoSQL Data | [Werken met Data](2-Working-With-Data/README.md) | Introductie tot niet-relationele data, de verschillende typen en de basis van het verkennen en analyseren van documentdatabases. | [les](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)|
| 07 | Werken met Python | [Werken met Data](2-Working-With-Data/README.md) | Basis van het gebruik van Python voor data-exploratie met bibliotheken zoals Pandas. Basiskennis van Python-programmering wordt aanbevolen. | [les](2-Working-With-Data/07-python/README.md) [video](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) |
| 08 | Data Voorbereiding | [Werken met Data](2-Working-With-Data/README.md) | Onderwerpen over data-technieken voor het schoonmaken en transformeren van data om uitdagingen aan te pakken zoals ontbrekende, onnauwkeurige of onvolledige data. | [les](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) |
| 09 | Visualiseren van Hoeveelheden | [Data Visualisatie](3-Data-Visualization/README.md) | Leer hoe Matplotlib te gebruiken om vogeldatat te visualiseren 🦆 | [les](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) |
| 10 | Visualiseren van Verdelingen in Data | [Data Visualisatie](3-Data-Visualization/README.md) | Visualiseren van observaties en trends binnen een interval. | [les](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) |
| 11 | Visualiseren van Verhoudingen | [Data Visualisatie](3-Data-Visualization/README.md) | Visualiseren van discrete en gegroepeerde percentages. | [les](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) |
| 12 | Visualiseren van Relaties | [Data Visualisatie](3-Data-Visualization/README.md) | Visualiseren van verbindingen en correlaties tussen datasets en hun variabelen. | [les](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) |
| 13 | Betekenisvolle Visualisaties | [Data Visualisatie](3-Data-Visualization/README.md) | Technieken en richtlijnen voor het maken van waardevolle visualisaties voor effectief probleemoplossen en inzichten. | [les](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) |
| 14 | Introductie tot de Data Science levenscyclus | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Introductie tot de data science levenscyclus en de eerste stap van het verwerven en extraheren van data. | [les](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) |
| 15 | Analyseren | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Deze fase van de data science levenscyclus richt zich op technieken om data te analyseren. | [les](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | |
| 16 | Communicatie | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Deze fase van de data science levenscyclus richt zich op het presenteren van inzichten uit data op een manier die besluitvormers helpt dit te begrijpen. | [les](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | |
| 17 | Data Science in de Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Deze serie lessen introduceert data science in de cloud en de voordelen ervan. | [les](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) en [Maud](https://twitter.com/maudstweets) |
| 18 | Data Science in de Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Modellen trainen met Low Code tools. |[les](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) en [Maud](https://twitter.com/maudstweets) |
| 19 | Data Science in de Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Modellen deployen met Azure Machine Learning Studio. | [les](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) en [Maud](https://twitter.com/maudstweets) |
| 20 | Data Science in het Echt Leven | [In het Wild](6-Data-Science-In-Wild/README.md) | Data science projecten in de echte wereld. | [les](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) |
| 19 | Data Science in de Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Modellen uitrollen met Azure Machine Learning Studio. | [les](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) en [Maud](https://twitter.com/maudstweets) |
| 20 | Data Science in de praktijk | [In de praktijk](6-Data-Science-In-Wild/README.md) | Data science gedreven projecten in de echte wereld. | [les](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) |
## GitHub Codespaces
Volg deze stappen om dit voorbeeld te openen in een Codespace:
1. Klik op het Code dropdownmenu en selecteer de optie Openen met Codespaces.
Volg deze stappen om dit voorbeeld in een Codespace te openen:
1. Klik op het Code-menu en selecteer de optie Openen met Codespaces.
2. Selecteer + Nieuwe codespace onderaan het paneel.
Voor meer info, bekijk de [GitHub documentatie](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace).
Voor meer informatie, bekijk de [GitHub documentatie](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace).
## VSCode Remote - Containers
Volg deze stappen om deze repo in een container te openen met je lokale machine en VSCode via de VS Code Remote - Containers extensie:
Volg deze stappen om deze repo in een container te openen met je lokale machine en VSCode met de VS Code Remote - Containers extensie:
1. Als dit de eerste keer is dat je een development container gebruikt, zorg dan dat je systeem voldoet aan de vereisten (zoals het geïnstalleerd hebben van Docker) in [de startgids](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started).
1. Als dit je eerste keer is dat je een ontwikkelcontainer gebruikt, zorg dan dat je systeem voldoet aan de vereisten (zoals het geïnstalleerd hebben van Docker) in [de startdocumentatie](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started).
Om deze repository te gebruiken, kun je de repository openen in een geïsoleerd Docker volume:
Om deze repository te gebruiken, kun je de repository openen in een geïsoleerde Docker volume:
**Let op**: Onder de motorkap gebruikt dit de Remote-Containers: **Clone Repository in Container Volume...** opdracht om de broncode te klonen in een Docker volume in plaats van het lokale bestandssysteem. [Volumes](https://docs.docker.com/storage/volumes/) zijn de voorkeur mechanisme om containerdata te bewaren.
**Opmerking**: Onder de motorkap zal dit het Remote-Containers: **Clone Repository in Container Volume...** commando gebruiken om de broncode te klonen in een Docker volume in plaats van het lokale bestandssysteem. [Volumes](https://docs.docker.com/storage/volumes/) zijn de voorkeursmethode om containerdata te bewaren.
Of open een lokaal gekloonde of gedownloade versie van de repository:
- Kloneer deze repository naar je lokale bestandssysteem.
- Druk op F1 en selecteer de**Remote-Containers: Open Folder in Container...** opdracht.
- Selecteer de gekloonde kopie van deze map, wacht tot de container start, en test het uit.
- Clone deze repository naar je lokale bestandssysteem.
- Druk op F1 en selecteer het commando**Remote-Containers: Open Folder in Container...**.
- Selecteer de gekloonde kopie van deze map, wacht tot de container is gestart, en probeer het uit.
## Offline toegang
Je kunt deze documentatie offline draaien met behulp van [Docsify](https://docsify.js.org/#/). Fork deze repo, [installeer Docsify](https://docsify.js.org/#/quickstart) op je lokale machine, typ dan in de root folder van deze repo `docsify serve`. De website wordt geserveerd op poort 3000 op je localhost: `localhost:3000`.
Je kunt deze documentatie offline draaien met [Docsify](https://docsify.js.org/#/). Fork deze repo, [installeer Docsify](https://docsify.js.org/#/quickstart) op je lokale machine, typ dan in de hoofdmap van deze repo `docsify serve`. De website wordt geserveerd op poort 3000 op je localhost: `localhost:3000`.
> Let op, notebooks worden niet gerenderd via Docsify, dus wanneer je een notebook moet draaien, doe dat dan apart in VS Code met een Python kernel.
> Let op, notebooks worden niet weergegeven via Docsify, dus wanneer je een notebook moet uitvoeren, doe dat dan apart in VS Code met een Python kernel.
## Andere Curricula
## Andere curricula
Ons team maakt andere curricula! Bekijk:
Ons team maakt ook andere curricula! Bekijk:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
@ -208,27 +218,27 @@ Ons team maakt andere curricula! Bekijk:
---
### Generatieve AI Reeks
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### Generative AI Series
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### Kern Leren
### Core Learning
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot Reeks
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
### Copilot Series
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
@ -237,11 +247,11 @@ Ons team maakt andere curricula! Bekijk:
**Problemen ondervonden?** Bekijk onze [Probleemoplossingsgids](TROUBLESHOOTING.md) voor oplossingen voor veelvoorkomende problemen.
Als je vastloopt of vragen hebt over het bouwen van AI-apps. Sluit je aan bij medeleerlingen en ervaren ontwikkelaars in discussies over MCP. Het is een ondersteunende gemeenschap waar vragen welkom zijn en kennis vrij gedeeld wordt.
Als je vastloopt of vragen hebt over het bouwen van AI-apps. Doe mee met medeleerlingen en ervaren ontwikkelaars in discussies over MCP. Het is een ondersteunende community waar vragen welkom zijn en kennis vrij gedeeld wordt.
@ -249,5 +259,5 @@ Als je productfeedback hebt of fouten ondervindt tijdens het bouwen, bezoek dan:
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Disclaimer**:
Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, kan automatische vertaling fouten of onnauwkeurigheden bevatten. Het originele document in de oorspronkelijke taal dient als gezaghebbende bron te worden beschouwd. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat automatische vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de originele taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor enige misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
[](https://youtu.be/beZ7Mb_oz9I)
[](https://youtu.be/beZ7Mb_oz9I)
## [Câu hỏi trước bài giảng](https://ff-quizzes.netlify.app/en/ds/quiz/0)
@ -144,7 +144,7 @@ Nếu muốn phức tạp hơn, chúng ta có thể vẽ biểu đồ thời gia
Trong thử thách này, chúng ta sẽ cố gắng tìm các khái niệm liên quan đến lĩnh vực Khoa học Dữ liệu bằng cách xem xét các văn bản. Chúng ta sẽ lấy một bài viết trên Wikipedia về Khoa học Dữ liệu, tải xuống và xử lý văn bản, sau đó tạo một đám mây từ như thế này:


Truy cập [`notebook.ipynb`](../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') để đọc qua mã. Bạn cũng có thể chạy mã và xem cách nó thực hiện tất cả các chuyển đổi dữ liệu trong thời gian thực.
"# Thử thách: Phân tích văn bản về Khoa học Dữ liệu\n",
"# Thử thách: Phân tích Văn bản về Khoa học Dữ liệu\n",
"\n",
"Trong ví dụ này, chúng ta sẽ thực hiện một bài tập đơn giản bao gồm tất cả các bước của quy trình khoa học dữ liệu truyền thống. Bạn không cần phải viết bất kỳ mã nào, chỉ cần nhấp vào các ô bên dưới để thực thi và quan sát kết quả. Như một thử thách, bạn được khuyến khích thử nghiệm mã này với các dữ liệu khác nhau.\n",
"Trong ví dụ này, hãy làm một bài tập đơn giản bao gồm tất cả các bước của quy trình khoa học dữ liệu truyền thống. Bạn không cần phải viết bất kỳ đoạn mã nào, bạn chỉ cần nhấp vào các ô bên dưới để thực thi chúng và quan sát kết quả. Như một thử thách, bạn được khuyến khích thử đoạn mã này với dữ liệu khác nhau.\n",
"\n",
"## Mục tiêu\n",
"\n",
"Trong bài học này, chúng ta đã thảo luận về các khái niệm khác nhau liên quan đến Khoa học Dữ liệu. Hãy cùng khám phá thêm các khái niệm liên quan bằng cách thực hiện **khai thác văn bản**. Chúng ta sẽ bắt đầu với một văn bản về Khoa học Dữ liệu, trích xuất các từ khóa từ đó, và sau đó cố gắng trực quan hóa kết quả.\n",
"Trong bài học này, chúng ta đã thảo luận về các khái niệm khác nhau liên quan đến Khoa học Dữ liệu. Hãy thử khám phá thêm các khái niệm liên quan bằng cách thực hiện một số **khai thác văn bản**. Chúng ta sẽ bắt đầu với một văn bản về Khoa học Dữ liệu, trích xuất các từ khóa từ nó, và sau đó cố gắng trực quan hóa kết quả.\n",
"\n",
"Làm văn bản, tôi sẽ sử dụng trang về Khoa học Dữ liệu từ Wikipedia:\n"
"Làmột văn bản, tôi sẽ sử dụng trang về Khoa học Dữ liệu từ Wikipedia:\n"
],
"metadata": {}
},
@ -32,9 +32,9 @@
{
"cell_type": "markdown",
"source": [
"## Bước 1: Lấy dữ liệu\n",
"## Bước 1: Lấy Dữ liệu\n",
"\n",
"Bước đầu tiên trong mọi quy trình khoa học dữ liệu là lấy dữ liệu. Chúng ta sẽ sử dụng thư viện `requests` để thực hiện điều này:\n"
"Bước đầu tiên trong mọi quy trình khoa học dữ liệu là lấy dữ liệu. Chúng ta sẽ sử dụng thư viện `requests` để làm việc đó:\n"
],
"metadata": {}
},
@ -66,45 +66,43 @@
{
"cell_type": "markdown",
"source": [
"## Bước 2: Chuyển đổi dữ liệu\n",
"## Bước 2: Biến đổi Dữ liệu\n",
"\n",
"Bước tiếp theo là chuyển đổi dữ liệu sang dạng phù hợp để xử lý. Trong trường hợp này, chúng ta đã tải xuống mã nguồn HTML từ trang web và cần chuyển đổi nó thành văn bản thuần túy.\n",
"Bước tiếp theo là chuyển đổi dữ liệu thành dạng phù hợp để xử lý. Trong trường hợp của chúng ta, chúng ta đã tải xuống mã nguồn HTML từ trang, và cần chuyển nó thành văn bản thô.\n",
"\n",
"Có nhiều cách để thực hiện việc này. Chúng ta sẽ sử dụng đối tượng [HTMLParser](https://docs.python.org/3/library/html.parser.html) tích hợp sẵn đơn giản nhất từ Python. Chúng ta cần kế thừa lớp `HTMLParser` và định nghĩa mã để thu thập tất cả văn bản bên trong các thẻ HTML, ngoại trừ các thẻ `<script>` và `<style>`.\n"
"Có nhiều cách để làm điều này. Chúng ta sẽ sử dụng [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/), một thư viện Python phổ biến để phân tích cú pháp HTML. BeautifulSoup cho phép chúng ta nhắm mục tiêu các phần tử HTML cụ thể, vì vậy chúng ta có thể tập trung vào nội dung bài viết chính từ Wikipedia và giảm bớt một số menu điều hướng, thanh bên, chân trang và các nội dung không liên quan khác (dù có thể vẫn còn một số đoạn văn bản mẫu).\n"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"Đầu tiên, chúng ta cần cài đặt thư viện BeautifulSoup để phân tích cú pháp HTML:\n"
"from bs4 import BeautifulSoup\r\n\r\n# Parse the HTML content\r\nsoup = BeautifulSoup(text, 'html.parser')\r\n\r\n# Extract only the main article content from Wikipedia\r\n# Wikipedia uses 'mw-parser-output' class for the main article content\r\ncontent = soup.find('div', class_='mw-parser-output')\r\n\r\ndef clean_wikipedia_content(content_node):\r\n \"\"\"Remove common non-article elements from a Wikipedia content node.\"\"\"\r\n # Strip jump links, navboxes, reference lists/superscripts, edit sections, TOC, sidebars, etc.\r\n selectors = [\r\n '.mw-jump-link',\r\n '.navbox',\r\n '.reflist',\r\n 'sup.reference',\r\n '.mw-editsection',\r\n '.hatnote',\r\n '.metadata',\r\n '.infobox',\r\n '#toc',\r\n '.toc',\r\n '.sidebar',\r\n ]\r\n for selector in selectors:\r\n for el in content_node.select(selector):\r\n el.decompose()\r\n\r\nif content:\r\n # Clean the content node to better approximate article text only.\r\n clean_wikipedia_content(content)\r\n text = content.get_text(separator=' ', strip=True)\r\n print(text[:1000])\r\nelse:\r\n print(\"Could not find main content. Using full page text.\")\r\n text = soup.get_text(separator=' ', strip=True)\r\n print(text[:1000])"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" Data science - Wikipedia Data science From Wikipedia, the free encyclopedia Jump to navigation Jump to search Interdisciplinary field of study focused on deriving knowledge and insights from data Not to be confused with information science . The existence of Comet NEOWISE (here depicted as a series of red dots) was discovered by analyzing astronomical survey data acquired by a space telescope , the Wide-field Infrared Survey Explorer . Part of a series on Machine learning and data mining Problems Classification Clustering Regression Anomaly detection AutoML Association rules Reinforcement learning Structured prediction Feature engineering Feature learning Online learning Semi-supervised learning Unsupervised learning Learning to rank Grammar induction Supervised learning ( classification • regression ) Decision trees Ensembles Bagging Boosting Random forest k -NN Linear regression Naive Bayes Artificial neural networks Logistic regression Perceptron Relevance vector machine \n"
"Data science From Wikipedia, the free encyclopedia Interdisciplinary field of study focused on deriving knowledge and insights from data Data science is an interdisciplinary academic field that uses statistics, scientific computing, scientific methods, processes, algorithms and systems to extract or extrapolate knowledge and insights from noisy, structured, and unstructured data. Data science also integrates domain knowledge from the underlying application domain. Data science is multifaceted and can be described as a science, a research paradigm, a research method, a discipline, a workflow, and a profession.\n"
]
}
],
@ -113,11 +111,11 @@
{
"cell_type": "markdown",
"source": [
"## Bước 3: Thu thập thông tin chi tiết\n",
"## Bước 3: Rút ra Thông tin\n",
"\n",
"Bước quan trọng nhất là chuyển đổi dữ liệu của chúng ta thành một dạng mà từ đó chúng ta có thể rút ra thông tin chi tiết. Trong trường hợp này, chúng ta muốn trích xuất các từ khóa từ văn bản và xem từ khóa nào có ý nghĩa hơn.\n",
"Bước quan trọng nhất là biến dữ liệu của chúng ta thành một dạng từ đó chúng ta có thể rút ra các thông tin chi tiết. Trong trường hợp của chúng ta, chúng ta muốn trích xuất các từ khóa từ văn bản, và xem từ khóa nào có ý nghĩa hơn.\n",
"\n",
"Chúng ta sẽ sử dụng thư viện Python có tên [RAKE](https://github.com/aneesha/RAKE) để trích xuất từ khóa. Đầu tiên, hãy cài đặt thư viện này nếu nó chưa được cài đặt:\n"
"Chúng ta sẽ sử dụng thư viện Python có tên là [RAKE](https://github.com/aneesha/RAKE) để trích xuất từ khóa. Trước tiên, hãy cài đặt thư viện này trong trường hợp nó chưa được cài đặt: \n"
],
"metadata": {}
},
@ -162,7 +160,7 @@
{
"cell_type": "markdown",
"source": [
"Chức năng chính có sẵn từ đối tượng `Rake`, mà chúng ta có thể tùy chỉnh bằng một số tham số. Trong trường hợp của chúng ta, chúng ta sẽ đặt độ dài tối thiểu của một từ khóa là 5 ký tự, tần suất tối thiểu của một từ khóa trong tài liệu là 3, và số lượng từ tối đa trong một từ khóa là 2. Hãy thoải mái thử nghiệm với các giá trị khác và quan sát kết quả.\n"
"Chức năng chính có sẵn từ đối tượng `Rake`, mà chúng ta có thể tùy chỉnh bằng một số tham số. Trong trường hợp của chúng ta, chúng ta sẽ đặt độ dài tối thiểu của một từ khóa là 5 ký tự, tần suất tối thiểu của một từ khóa trong tài liệu là 3, và số từ tối đa trong một từ khóa là 2. Hãy thoải mái thử nghiệm với các giá trị khác và quan sát kết quả.\n"
],
"metadata": {}
},
@ -211,11 +209,11 @@
{
"cell_type": "markdown",
"source": [
"Chúng tôi đã thu thập một danh sách các thuật ngữ cùng với mức độ quan trọng liên quan. Như bạn có thể thấy, các lĩnh vực quan trọng nhất, chẳng hạn như học máy và dữ liệu lớn, xuất hiện ở các vị trí đầu tiên trong danh sách.\n",
"Chúng tôi đã thu được danh sách các thuật ngữ cùng với mức độ quan trọng liên quan. Như bạn có thể thấy, các chuyên ngành có liên quan nhất, chẳng hạn như học máy và dữ liệu lớn, xuất hiện trong danh sách ở các vị trí đầu tiên.\n",
"\n",
"## Bước 4: Trực quan hóa kết quả\n",
"## Bước 4: Trực quan hóa Kết quả\n",
"\n",
"Con người thường hiểu dữ liệu tốt nhất dưới dạng trực quan. Vì vậy, việc trực quan hóa dữ liệu để rút ra một số thông tin thường rất hợp lý. Chúng ta có thể sử dụng thư viện `matplotlib` trong Python để vẽ phân bố đơn giản của các từ khóa cùng với mức độ liên quan của chúng:\n"
"Mọi người có thể diễn giải dữ liệu tốt nhất dưới dạng trực quan. Do đó, thường hợp lý khi trực quan hóa dữ liệu để rút ra một số hiểu biết. Chúng ta có thể sử dụng thư viện `matplotlib` trong Python để vẽ phân phối đơn giản của các từ khóa cùng với mức độ liên quan của chúng:\n"
],
"metadata": {}
},
@ -252,7 +250,7 @@
{
"cell_type": "markdown",
"source": [
"Tuy nhiên, có một cách thậm chí tốt hơn để hình dung tần suất từ - sử dụng **Word Cloud**. Chúng ta sẽ cần cài đặt một thư viện khác để vẽ đám mây từ từ danh sách từ khóa của mình.\n"
"Tuy nhiên, có một cách còn tốt hơn để trực quan hóa tần suất từ - sử dụng **Word Cloud**. Chúng ta sẽ cần cài đặt một thư viện khác để vẽ đám mây từ từ danh sách từ khóa của chúng ta.\n"
],
"metadata": {}
},
@ -268,7 +266,7 @@
{
"cell_type": "markdown",
"source": [
"Đối tượng `WordCloud` chịu trách nhiệm nhận vào hoặc văn bản gốc, hoặc danh sách các từ đã được tính toán trước với tần suất của chúng, và trả về một hình ảnh, sau đó có thể được hiển thị bằng cách sử dụng `matplotlib`:\n"
"Đối tượng `WordCloud` chịu trách nhiệm nhận vào văn bản gốc hoặc danh sách các từ đã được tính trước với tần suất của chúng, và trả về một hình ảnh, sau đó có thể được hiển thị bằng cách sử dụng `matplotlib`:\n"
],
"metadata": {}
},
@ -372,9 +370,9 @@
{
"cell_type": "markdown",
"source": [
"Bạn có thể thấy rằng đám mây từ giờ đây trông ấn tượng hơn, nhưng nó cũng chứa rất nhiều nhiễu (ví dụ: các từ không liên quan như `Retrieved on`). Ngoài ra, chúng ta nhận được ít từ khóa hơn bao gồm hai từ, chẳng hạn như *data scientist* hoặc *computer science*. Điều này là do thuật toán RAKE làm tốt hơn nhiều trong việc chọn ra các từ khóa chất lượng từ văn bản. Ví dụ này minh họa tầm quan trọng của việc tiền xử lý và làm sạch dữ liệu, bởi vì một bức tranh rõ ràng ở cuối sẽ cho phép chúng ta đưa ra các quyết định tốt hơn.\n",
"Bạn có thể thấy rằng đám mây từ hiện nay trông ấn tượng hơn, nhưng nó cũng chứa rất nhiều tiếng ồn (ví dụ: các từ không liên quan như `Retrieved on`). Ngoài ra, chúng ta nhận được ít từ khóa gồm hai từ hơn, chẳng hạn như *data scientist* hay *computer science*. Điều này là do thuật toán RAKE thực hiện tốt hơn nhiều trong việc chọn từ khóa tốt từ văn bản. Ví dụ này minh họa tầm quan trọng của việc tiền xử lý và làm sạch dữ liệu, vì hình ảnh rõ ràng cuối cùng sẽ cho phép chúng ta đưa ra các quyết định tốt hơn.\n",
"\n",
"Trong bài tập này, chúng ta đã đi qua một quy trình đơn giản để trích xuất một số ý nghĩa từ văn bản Wikipedia, dưới dạng từ khóa và đám mây từ. Ví dụ này khá đơn giản, nhưng nó minh họa rõ ràng tất cả các bước điển hình mà một nhà khoa học dữ liệu sẽ thực hiện khi làm việc với dữ liệu, bắt đầu từ việc thu thập dữ liệu cho đến khi trực quan hóa.\n",
"Trong bài tập này, chúng ta đã đi qua một quy trình đơn giản để trích xuất một số ý nghĩa từ văn bản Wikipedia, dưới dạng các từ khóa và đám mây từ. Ví dụ này khá đơn giản, nhưng nó thể hiện tốt tất cả các bước điển hình mà một nhà khoa học dữ liệu sẽ thực hiện khi làm việc với dữ liệu, bắt đầu từ việc thu thập dữ liệu cho đến trực quan hóa.\n",
"\n",
"Trong khóa học của chúng ta, chúng ta sẽ thảo luận chi tiết về tất cả các bước đó.\n"
],
@ -394,7 +392,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Tuyên bố miễn trừ trách nhiệm**: \nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn tham khảo chính thức. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Tuyên bố từ chối trách nhiệm**: \nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó nên được coi là nguồn tham khảo chính thức. Đối với các thông tin quan trọng, khuyến nghị sử dụng dịch thuật bởi chuyên gia con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu nhầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"# Thử thách: Phân tích văn bản về Khoa học Dữ liệu\n",
"\n",
"> *Trong notebook này, chúng ta thử nghiệm sử dụng URL khác - bài viết Wikipedia về Học Máy. Bạn có thể thấy rằng, không giống như Khoa học Dữ liệu, bài viết này chứa rất nhiều thuật ngữ, điều này làm cho việc phân tích trở nên khó khăn hơn. Chúng ta cần tìm ra một cách khác để làm sạch dữ liệu sau khi thực hiện trích xuất từ khóa, nhằm loại bỏ một số cụm từ thường xuyên xuất hiện nhưng không có ý nghĩa.*\n",
"> *Trong sổ tay này, chúng ta thử nghiệm sử dụng các URL khác nhau - bài viết wikipedia về Máy học. Bạn có thể thấy rằng, không giống như Khoa học Dữ liệu, bài viết này chứa rất nhiều thuật ngữ, điều này làm cho việc phân tích trở nên phức tạp hơn. Chúng ta cần tìm ra một cách khác để làm sạch dữ liệu sau khi thực hiện trích xuất từ khóa, để loại bỏ một số cụm từ thường xuyên xuất hiện nhưng không mang ý nghĩa.* \n",
"\n",
"Trong ví dụ này, hãy thực hiện một bài tập đơn giản bao gồm tất cả các bước của quy trình khoa học dữ liệu truyền thống. Bạn không cần phải viết bất kỳ mã nào, chỉ cần nhấp vào các ô bên dưới để thực thi và quan sát kết quả. Như một thử thách, bạn được khuyến khích thử nghiệm mã này với dữ liệu khác.\n",
"Trong ví dụ này, hãy làm một bài tập đơn giản bao gồm tất cả các bước trong quy trình khoa học dữ liệu truyền thống. Bạn không cần phải viết bất kỳ mã nào, bạn chỉ cần nhấp vào các ô bên dưới để thực thi chúng và quan sát kết quả. Là một thử thách, bạn được khuyến khích thử đoạn mã này với dữ liệu khác.\n",
"\n",
"## Mục tiêu\n",
"\n",
"Trong bài học này, chúng ta đã thảo luận về các khái niệm khác nhau liên quan đến Khoa học Dữ liệu. Hãy thử khám phá thêm các khái niệm liên quan bằng cách thực hiện **khai thác văn bản**. Chúng ta sẽ bắt đầu với một văn bản về Khoa học Dữ liệu, trích xuất từ khóa từ đó, và sau đó cố gắng trực quan hóa kết quả.\n",
"Trong bài học này, chúng ta đã thảo luận về các khái niệm khác nhau liên quan đến Khoa học Dữ liệu. Hãy thử khám phá thêm các khái niệm liên quan bằng cách thực hiện một số **khai thác văn bản**. Chúng ta sẽ bắt đầu với văn bản về Khoa học Dữ liệu, trích xuất các từ khóa từ nó, và sau đó thử trực quan hóa kết quả.\n",
"\n",
"Làm văn bản, tôi sẽ sử dụng trang về Khoa học Dữ liệu từ Wikipedia:\n"
"Làmột văn bản, tôi sẽ sử dụng trang về Khoa học Dữ liệu từ Wikipedia:\n"
],
"metadata": {}
},
@ -37,7 +37,7 @@
"source": [
"## Bước 1: Lấy dữ liệu\n",
"\n",
"Bước đầu tiên trong mọi quy trình khoa học dữ liệu là lấy dữ liệu. Chúng ta sẽ sử dụng thư viện `requests` để thực hiện điều này:\n"
"Bước đầu tiên trong mọi quy trình khoa học dữ liệu là lấy dữ liệu. Chúng ta sẽ sử dụng thư viện `requests` để làm việc đó:\n"
],
"metadata": {}
},
@ -69,45 +69,43 @@
{
"cell_type": "markdown",
"source": [
"## Bước 2: Chuyển đổi dữ liệu\n",
"## Bước 2: Biến đổi Dữ liệu\n",
"\n",
"Bước tiếp theo là chuyển đổi dữ liệu sang dạng phù hợp để xử lý. Trong trường hợp của chúng ta, chúng ta đã tải xuống mã nguồn HTML từ trang web và cần chuyển đổi nó thành văn bản thuần túy.\n",
"Bước tiếp theo là chuyển đổi dữ liệu thành dạng phù hợp để xử lý. Trong trường hợp của chúng ta, chúng ta đã tải xuống mã nguồn HTML từ trang, và chúng ta cần chuyển đổi nó thành văn bản thuần túy.\n",
"\n",
"Có nhiều cách để thực hiện điều này. Chúng ta sẽ sử dụng đối tượng [HTMLParser](https://docs.python.org/3/library/html.parser.html) tích hợp đơn giản nhất từ Python. Chúng ta cần kế thừa lớp `HTMLParser` và định nghĩa mã để thu thập tất cả văn bản bên trong các thẻ HTML, ngoại trừ các thẻ `<script>` và `<style>`.\n"
"Có nhiều cách để thực hiện điều này. Chúng ta sẽ sử dụng [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/), một thư viện Python phổ biến để phân tích cú pháp HTML. BeautifulSoup cho phép chúng ta nhắm vào các phần tử HTML cụ thể, vì vậy chúng ta có thể tập trung vào nội dung bài viết chính từ Wikipedia và giảm bớt một số menu điều hướng, thanh bên, chân trang và các nội dung không liên quan khác (mặc dù một số văn bản mẫu có thể vẫn còn lại).\n"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"Đầu tiên, chúng ta cần cài đặt thư viện BeautifulSoup để phân tích cú pháp HTML:\n"
"from bs4 import BeautifulSoup\r\n\r\n# Parse the HTML content\r\nsoup = BeautifulSoup(text, 'html.parser')\r\n\r\n# Extract only the main article content from Wikipedia\r\n# Wikipedia uses 'mw-parser-output' class for the main article content\r\ncontent = soup.find('div', class_='mw-parser-output')\r\n\r\ndef clean_wikipedia_content(content_node):\r\n \"\"\"Remove common non-article elements from a Wikipedia content node.\"\"\"\r\n # Strip jump links, navboxes, reference lists/superscripts, edit sections, TOC, sidebars, etc.\r\n selectors = [\r\n '.mw-jump-link',\r\n '.navbox',\r\n '.reflist',\r\n 'sup.reference',\r\n '.mw-editsection',\r\n '.hatnote',\r\n '.metadata',\r\n '.infobox',\r\n '#toc',\r\n '.toc',\r\n '.sidebar',\r\n ]\r\n for selector in selectors:\r\n for el in content_node.select(selector):\r\n el.decompose()\r\n\r\nif content:\r\n # Clean the content node to better approximate article text only.\r\n clean_wikipedia_content(content)\r\n text = content.get_text(separator=' ', strip=True)\r\n print(text[:1000])\r\nelse:\r\n print(\"Could not find main content. Using full page text.\")\r\n text = soup.get_text(separator=' ', strip=True)\r\n print(text[:1000])"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" Machine learning - Wikipedia Machine learning From Wikipedia, the free encyclopedia Jump to navigation Jump to search Study of algorithms that improve automatically through experience For the journal, see Machine Learning (journal) . \"Statistical learning\" redirects here. For statistical learning in linguistics, see statistical learning in language acquisition . Part of a series on Artificial intelligence Major goals Artificial general intelligence Planning Computer vision General game playing Knowledge reasoning Machine learning Natural language processing Robotics Approaches Symbolic Deep learning Bayesian networks Evolutionary algorithms Philosophy Ethics Existential risk Turing test Chinese room Control problem Friendly AI History Timeline Progress AI winter Technology Applications Projects Programming languages Glossary Glossary v t e Part of a series on Machine learning and data mining Problems Classification Clustering Regression Anomaly detection Data Cleaning AutoML Associ\n"
"Machine learning From Wikipedia, the free encyclopedia Study of algorithms that improve automatically through experience Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of statistical algorithms that can learn from data and generalize to unseen data, and thus perform tasks without explicit instructions. Recently, artificial neural networks have been able to surpass many previous approaches in performance. ML finds application in many fields, including natural language processing, computer vision, speech recognition, email filtering, agriculture, and medicine.\n"
]
}
],
@ -116,11 +114,11 @@
{
"cell_type": "markdown",
"source": [
"## Bước 3: Khai thác thông tin chi tiết\n",
"## Bước 3: Tạo thông tin chuyên sâu\n",
"\n",
"Bước quan trọng nhất là chuyển đổi dữ liệu của chúng ta thành một dạng mà từ đó chúng ta có thể rút ra thông tin chi tiết. Trong trường hợp này, chúng ta muốn trích xuất các từ khóa từ văn bản và xem từ khóa nào có ý nghĩa hơn.\n",
"Bước quan trọng nhất là chuyển dữ liệu của chúng ta thành một dạng mà từ đó chúng ta có thể rút ra thông tin chuyên sâu. Trong trường hợp của chúng ta, chúng ta muốn trích xuất các từ khóa từ văn bản và xem những từ khóa nào có ý nghĩa hơn.\n",
"\n",
"Chúng ta sẽ sử dụng thư viện Python có tên là [RAKE](https://github.com/aneesha/RAKE) để trích xuất từ khóa. Đầu tiên, hãy cài đặt thư viện này nếu nó chưa được cài đặt:\n"
"Chúng ta sẽ sử dụng thư viện Python có tên là [RAKE](https://github.com/aneesha/RAKE) để trích xuất từ khóa. Trước tiên, hãy cài đặt thư viện này trong trường hợp nó chưa có: \n"
],
"metadata": {}
},
@ -172,7 +170,7 @@
{
"cell_type": "markdown",
"source": [
"Chức năng chính có sẵn từ đối tượng `Rake`, mà chúng ta có thể tùy chỉnh bằng một số tham số. Trong trường hợp của chúng ta, chúng ta sẽ đặt độ dài tối thiểu của một từ khóa là 5 ký tự, tần suất tối thiểu của một từ khóa trong tài liệu là 3, và số lượng từ tối đa trong một từ khóa là 2. Hãy thoải mái thử nghiệm với các giá trị khác và quan sát kết quả.\n"
"Chức năng chính có sẵn từ đối tượng `Rake`, mà chúng ta có thể tùy chỉnh bằng một số tham số. Trong trường hợp của chúng ta, chúng ta sẽ đặt độ dài tối thiểu của từ khóa là 5 ký tự, tần suất tối thiểu của từ khóa trong tài liệu là 3, và số từ tối đa trong một từ khóa là 2. Hãy thoải mái thử nghiệm với các giá trị khác và quan sát kết quả.\n"
],
"metadata": {}
},
@ -353,11 +351,11 @@
{
"cell_type": "markdown",
"source": [
"Chúng tôi đã thu thập được danh sách các thuật ngữ cùng với mức độ quan trọng tương ứng. Như bạn có thể thấy, các lĩnh vực quan trọng nhất, chẳng hạn như machine learning và big data, xuất hiện ở các vị trí đầu trong danh sách.\n",
"Chúng tôi đã thu được một danh sách các thuật ngữ cùng với mức độ quan trọng liên quan. Như bạn có thể thấy, những ngành học có liên quan nhất, chẳng hạn như học máy và dữ liệu lớn, xuất hiện trong danh sách ở các vị trí đầu.\n",
"\n",
"## Bước 4: Trực quan hóa kết quả\n",
"\n",
"Con người thường hiểu dữ liệu tốt nhất khi ở dạng trực quan. Do đó, việc trực quan hóa dữ liệu để rút ra một số thông tin chi tiết thường rất hợp lý. Chúng ta có thể sử dụng thư viện `matplotlib` trong Python để vẽ biểu đồ phân phối đơn giản của các từ khóa cùng với mức độ liên quan của chúng:\n"
"Mọi người có thể hiểu dữ liệu tốt nhất dưới dạng trực quan. Do đó, thường hợp lý khi trực quan hóa dữ liệu nhằm rút ra một số hiểu biết. Chúng ta có thể sử dụng thư viện `matplotlib` trong Python để vẽ phân bố đơn giản của các từ khóa cùng với mức độ liên quan của chúng:\n"
],
"metadata": {}
},
@ -392,7 +390,7 @@
{
"cell_type": "markdown",
"source": [
"Tuy nhiên, có một cách thậm chí tốt hơn để hình dung tần suất từ - sử dụng **Word Cloud**. Chúng ta sẽ cần cài đặt một thư viện khác để vẽ đám mây từ từ danh sách từ khóa của mình.\n"
"Tuy nhiên, có một cách còn tốt hơn để hình dung tần suất từ - sử dụng **Word Cloud**. Chúng ta sẽ cần cài đặt một thư viện khác để vẽ đám mây từ khoá từ danh sách từ khoá của chúng ta.\n"
],
"metadata": {}
},
@ -408,7 +406,7 @@
{
"cell_type": "markdown",
"source": [
"Đối tượng `WordCloud` chịu trách nhiệm nhận vào văn bản gốc hoặc danh sách các từ đã được tính toán trước cùng với tần suất của chúng, và trả về một hình ảnh, sau đó có thể được hiển thị bằng cách sử dụng `matplotlib`:\n"
"Đối tượng `WordCloud` chịu trách nhiệm nhận vào văn bản gốc hoặc danh sách từ đã tính trước cùng tần suất của chúng, và trả về một hình ảnh, sau đó có thể được hiển thị sử dụng `matplotlib`:\n"
],
"metadata": {}
},
@ -441,7 +439,7 @@
{
"cell_type": "markdown",
"source": [
"Chúng ta cũng có thể truyền văn bản gốc vào `WordCloud` - hãy xem liệu chúng ta có thể đạt được kết quả tương tự không:\n"
"Chúng ta cũng có thể truyền vào văn bản gốc cho `WordCloud` - hãy xem liệu chúng ta có thể có được kết quả tương tự không:\n"
],
"metadata": {}
},
@ -490,11 +488,11 @@
{
"cell_type": "markdown",
"source": [
"Bạn có thể thấy rằng đám mây từ giờ trông ấn tượng hơn, nhưng nó cũng chứa nhiều nhiễu (ví dụ: các từ không liên quan như `Retrieved on`). Ngoài ra, chúng ta nhận được ít từ khóa hơn bao gồm hai từ, chẳng hạn như *data scientist* hoặc *computer science*. Điều này là do thuật toán RAKE làm tốt hơn trong việc chọn các từ khóa chất lượng từ văn bản. Ví dụ này minh họa tầm quan trọng của việc tiền xử lý và làm sạch dữ liệu, vì một bức tranh rõ ràng ở cuối sẽ giúp chúng ta đưa ra quyết định tốt hơn.\n",
"Bạn có thể thấy rằng đám mây từ bây giờ trông ấn tượng hơn, nhưng nó cũng chứa rất nhiều nhiễu (ví dụ: những từ không liên quan như `Retrieved on`). Ngoài ra, chúng ta có ít từ khóa gồm hai từ hơn, chẳng hạn như *data scientist*, hoặc *computer science*. Điều này là vì thuật toán RAKE làm tốt hơn nhiều trong việc chọn từ khóa tốt từ văn bản. Ví dụ này minh họa tầm quan trọng của việc tiền xử lý và làm sạch dữ liệu, vì hình ảnh rõ ràng cuối cùng sẽ cho phép chúng ta đưa ra các quyết định tốt hơn.\n",
"\n",
"Trong bài tập này, chúng ta đã trải qua một quy trình đơn giản để trích xuất một số ý nghĩa từ văn bản Wikipedia, dưới dạng từ khóa và đám mây từ. Ví dụ này khá đơn giản, nhưng nó minh họa tốt tất cả các bước điển hình mà một nhà khoa học dữ liệu sẽ thực hiện khi làm việc với dữ liệu, bắt đầu từ việc thu thập dữ liệu cho đến trực quan hóa.\n",
"Trong bài tập này, chúng ta đã trải qua một quy trình đơn giản để trích xuất một số ý nghĩa từ văn bản Wikipedia, dưới dạng từ khóa và đám mây từ. Ví dụ này khá đơn giản, nhưng nó thể hiện rõ tất cả các bước điển hình mà một nhà khoa học dữ liệu sẽ thực hiện khi làm việc với dữ liệu, bắt đầu từ việc thu thập dữ liệu, cho đến trực quan hóa.\n",
"\n",
"Trong khóa học của chúng ta, chúng ta sẽ thảo luận chi tiết về tất cả các bước đó.\n"
"Trong khóa học của chúng ta, chúng tôi sẽ thảo luận chi tiết tất cả các bước đó.\n"
],
"metadata": {}
},
@ -502,7 +500,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Tuyên bố miễn trừ trách nhiệm**:\nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn tham khảo chính thức. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Tuyên bố miễn trừ trách nhiệm**:\nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ nguyên bản nên được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hay diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
Lý thuyết Thống kê và Xác suất là hai lĩnh vực liên quan chặt chẽ trong Toán học và rất quan trọng đối với Khoa học Dữ liệu. Bạn có thể làm việc với dữ liệu mà không cần kiến thức sâu về toán học, nhưng vẫn tốt hơn nếu biết ít nhất một số khái niệm cơ bản. Dưới đây là phần giới thiệu ngắn gọn để giúp bạn bắt đầu.
[](https://youtu.be/Z5Zy85g4Yjw)
[](https://youtu.be/Z5Zy85g4Yjw)
## [Câu hỏi trước bài giảng](https://ff-quizzes.netlify.app/en/ds/quiz/6)
@ -30,7 +30,7 @@ Mô tả phân phối xác suất của một biến liên tục khó hơn, vớ
Chúng ta chỉ có thể nói về xác suất của một biến nằm trong một khoảng giá trị nhất định, ví dụ P(t<sub>1</sub>≤X<t<sub>2</sub>). Trong trường hợp này, phân phối xác suất được mô tả bằng **hàm mật độ xác suất** p(x), sao cho:
Một dạng liên tục của phân phối đều được gọi là **phân phối đều liên tục**, được định nghĩa trên một khoảng hữu hạn. Xác suất giá trị X nằm trong một khoảng có độ dài l tỷ lệ thuận với l, và tăng lên đến 1.
@ -73,11 +73,11 @@ Khi chúng ta phân tích dữ liệu từ đời thực, chúng thường khôn
Dưới đây là biểu đồ box plot hiển thị giá trị trung bình, median và tứ phân vị cho dữ liệu của chúng ta:


Vì dữ liệu của chúng ta chứa thông tin về các **vai trò** của cầu thủ, chúng ta cũng có thể tạo box plot theo vai trò - điều này sẽ cho phép chúng ta hiểu cách các giá trị tham số khác nhau giữa các vai trò. Lần này chúng ta sẽ xem xét chiều cao:


Biểu đồ này cho thấy rằng, trung bình, chiều cao của các cầu thủ ở vị trí đầu tiên cao hơn chiều cao của các cầu thủ ở vị trí thứ hai. Sau này trong bài học, chúng ta sẽ học cách kiểm tra giả thuyết này một cách chính thức hơn, và cách chứng minh rằng dữ liệu của chúng ta có ý nghĩa thống kê để thể hiện điều đó.
@ -85,7 +85,7 @@ Biểu đồ này cho thấy rằng, trung bình, chiều cao của các cầu t
Để xem phân phối của dữ liệu của chúng ta, chúng ta có thể vẽ một biểu đồ gọi là **histogram**. Trục X sẽ chứa một số khoảng cân nặng khác nhau (gọi là **bins**), và trục Y sẽ hiển thị số lần mẫu biến ngẫu nhiên nằm trong một khoảng nhất định.


Từ histogram này, bạn có thể thấy rằng tất cả các giá trị tập trung xung quanh một giá trị cân nặng trung bình nhất định, và càng xa giá trị đó - càng ít cân nặng có giá trị đó được gặp. Tức là, rất khó xảy ra rằng cân nặng của một cầu thủ bóng chày sẽ khác biệt nhiều so với cân nặng trung bình. Phương sai của cân nặng cho thấy mức độ mà cân nặng có khả năng khác biệt so với giá trị trung bình.
Nếu chúng ta vẽ histogram của các mẫu được tạo ra, chúng ta sẽ thấy hình ảnh rất giống với hình ảnh được hiển thị ở trên. Và nếu chúng ta tăng số lượng mẫu và số lượng bins, chúng ta có thể tạo ra hình ảnh của phân phối chuẩn gần với lý tưởng hơn:


*Phân phối chuẩn với mean=0 và std.dev=1*
@ -225,7 +225,7 @@ array([[1. , 0.52959196],
Trong trường hợp của chúng ta, giá trị 0.53 chỉ ra rằng có một số tương quan giữa cân nặng và chiều cao của một người. Chúng ta cũng có thể tạo biểu đồ phân tán của một giá trị so với giá trị kia để xem mối quan hệ một cách trực quan:


> Nhiều ví dụ hơn về tương quan và hiệp phương sai có thể được tìm thấy trong [notebook đi kèm](notebook.ipynb).


> Ảnh của <ahref="https://unsplash.com/@dawson2406?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Stephen Dawson</a> trên <ahref="https://unsplash.com/s/photos/data?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
Trong các bài học này, bạn sẽ khám phá cách Khoa học Dữ liệu được định nghĩa và tìm hiểu về các cân nhắc đạo đức mà một nhà khoa học dữ liệu cần lưu ý. Bạn cũng sẽ học cách dữ liệu được định nghĩa và tìm hiểu một chút về thống kê và xác suất, những lĩnh vực học thuật cốt lõi của Khoa học Dữ liệu.
| Làm việc với Python - _Sketchnote của [@nitya](https://twitter.com/nitya)_ |
[](https://youtu.be/dZjWOGbsN4Y)
[](https://youtu.be/dZjWOGbsN4Y)
Mặc dù cơ sở dữ liệu cung cấp cách lưu trữ dữ liệu và truy vấn chúng rất hiệu quả bằng ngôn ngữ truy vấn, cách linh hoạt nhất để xử lý dữ liệu là viết chương trình của riêng bạn để thao tác dữ liệu. Trong nhiều trường hợp, việc thực hiện truy vấn cơ sở dữ liệu sẽ hiệu quả hơn. Tuy nhiên, trong một số trường hợp khi cần xử lý dữ liệu phức tạp hơn, điều này không thể thực hiện dễ dàng bằng SQL.
Xử lý dữ liệu có thể được lập trình bằng bất kỳ ngôn ngữ lập trình nào, nhưng có một số ngôn ngữ ở cấp độ cao hơn khi làm việc với dữ liệu. Các nhà khoa học dữ liệu thường ưu tiên một trong các ngôn ngữ sau:
@ -64,7 +64,7 @@ print(f"Length of index is {len(idx)}")


Bây giờ giả sử rằng mỗi tuần chúng ta tổ chức một bữa tiệc cho bạn bè và lấy thêm 10 hộp kem cho bữa tiệc. Chúng ta có thể tạo một series khác, được index theo tuần, để minh họa điều đó:
```python
@ -75,7 +75,7 @@ Khi chúng ta cộng hai series lại với nhau, chúng ta sẽ có tổng số


> **Lưu ý** rằng chúng ta không sử dụng cú pháp đơn giản `total_items+additional_items`. Nếu làm vậy, chúng ta sẽ nhận được rất nhiều giá trị `NaN` (*Not a Number*) trong series kết quả. Điều này là do có các giá trị bị thiếu cho một số điểm index trong series `additional_items`, và việc cộng `NaN` với bất kỳ giá trị nào sẽ dẫn đến `NaN`. Do đó, chúng ta cần chỉ định tham số `fill_value` trong quá trình cộng.
@ -84,7 +84,7 @@ Với chuỗi thời gian, chúng ta cũng có thể **resample** series với c
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
```


### DataFrame
@ -210,7 +210,7 @@ Vấn đề đầu tiên chúng ta sẽ tập trung là mô hình hóa sự lây
Vì chúng ta muốn minh họa cách xử lý dữ liệu, hãy mở [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) và đọc từ đầu đến cuối. Bạn cũng có thể thực thi các ô lệnh và thực hiện một số thử thách mà chúng tôi đã để lại cho bạn ở cuối.
> Nếu bạn không biết cách chạy mã trong Jupyter Notebook, hãy xem [bài viết này](https://soshnikov.com/education/how-to-execute-notebooks-from-github/).
@ -232,7 +232,7 @@ Một ví dụ đầy đủ về việc phân tích bộ dữ liệu này bằng
Hãy mở [`notebook-papers.ipynb`](notebook-papers.ipynb) và đọc từ đầu đến cuối. Bạn cũng có thể thực thi các ô lệnh và thực hiện một số thử thách mà chúng tôi đã để lại cho bạn ở cuối.


> Ảnh của <ahref="https://unsplash.com/@swimstaralex?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Alexander Sinn</a> trên <ahref="https://unsplash.com/s/photos/data?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
Trong các bài học này, bạn sẽ tìm hiểu một số cách mà dữ liệu có thể được quản lý, xử lý và sử dụng trong các ứng dụng. Bạn sẽ học về cơ sở dữ liệu quan hệ và phi quan hệ, cũng như cách dữ liệu có thể được lưu trữ trong chúng. Bạn sẽ nắm được các kiến thức cơ bản về cách làm việc với Python để quản lý dữ liệu, và khám phá một số cách mà Python có thể được sử dụng để quản lý và khai thác dữ liệu.
Bây giờ, hiển thị cùng dữ liệu với một bảng màu mật ong để thể hiện cách giá thay đổi theo năm. Bạn có thể làm điều này bằng cách thêm tham số 'hue' để hiển thị sự thay đổi theo năm:
@ -51,7 +51,7 @@ Bây giờ, hiển thị cùng dữ liệu với một bảng màu mật ong đ
Với sự thay đổi bảng màu này, bạn có thể thấy rõ ràng rằng có một sự tiến triển mạnh mẽ theo năm về giá mật ong mỗi pound. Thực tế, nếu bạn xem xét một tập mẫu trong dữ liệu để xác minh (chọn một bang cụ thể, ví dụ Arizona), bạn có thể thấy một xu hướng tăng giá theo năm, với một vài ngoại lệ:
Đây có phải là một trường hợp đơn giản của cung và cầu? Do các yếu tố như biến đổi khí hậu và sự sụp đổ của đàn ong, liệu có ít mật ong hơn để mua theo năm, và do đó giá tăng lên?
✅ Vì Seaborn đang tổng hợp dữ liệu xung quanh một đường, nó hiển thị "các phép đo nhiều lần tại mỗi giá trị x bằng cách vẽ trung bình và khoảng tin cậy 95% xung quanh trung bình". [Nguồn](https://seaborn.pydata.org/tutorial/relational.html). Hành vi tốn thời gian này có thể bị vô hiệu hóa bằng cách thêm `ci=None`.
@ -105,7 +105,7 @@ Câu hỏi: Vậy, vào năm 2003, liệu chúng ta có thể thấy sự tăng
Trả lời: Không hẳn. Nếu bạn xem xét tổng sản lượng, thực tế nó dường như đã tăng trong năm đó, mặc dù nhìn chung lượng mật ong được sản xuất đang giảm trong những năm này.
@ -130,7 +130,7 @@ sns.relplot(
```
Trong hình dung này, bạn có thể so sánh sản lượng mỗi đàn và số lượng đàn ong theo năm, cạnh nhau với wrap được đặt là 3 cho các cột:
Đối với tập dữ liệu này, không có gì đặc biệt nổi bật liên quan đến số lượng đàn ong và sản lượng của chúng theo năm và theo bang. Có cách nào khác để tìm mối tương quan giữa hai biến này không?
Mặc dù không có gì nổi bật vào khoảng năm 2003, nó cho phép chúng ta kết thúc bài học này với một ghi chú tích cực hơn: mặc dù số lượng đàn ong đang giảm, số lượng đàn ong đang ổn định ngay cả khi sản lượng mỗi đàn đang giảm.
Ở đây, bạn cài đặt gói `ggplot2` và sau đó nhập nó vào workspace bằng lệnh `library("ggplot2")`. Để vẽ bất kỳ biểu đồ nào trong ggplot, hàm `ggplot()` được sử dụng và bạn chỉ định tập dữ liệu, các biến x và y làm thuộc tính. Trong trường hợp này, chúng ta sử dụng hàm `geom_line()` vì mục tiêu là vẽ biểu đồ đường.
Bạn nhận thấy điều gì ngay lập tức? Có vẻ như có ít nhất một giá trị ngoại lai - đó là một sải cánh khá lớn! Một sải cánh hơn 2000 cm tương đương hơn 20 mét - liệu có phải khủng long bay đang lang thang ở Minnesota? Hãy điều tra.
Ngay cả khi xoay nhãn ở góc 45 độ, vẫn có quá nhiều nhãn để đọc. Hãy thử một chiến lược khác: chỉ gắn nhãn cho các giá trị ngoại lai và đặt nhãn trong biểu đồ. Bạn có thể sử dụng biểu đồ scatter để có thêm không gian cho việc gắn nhãn:
Chúng ta đã tạo một dataframe mới `birds_filtered` và sau đó vẽ một biểu đồ scatter. Bằng cách lọc các giá trị ngoại lai, dữ liệu của bạn giờ đây trở nên gắn kết và dễ hiểu hơn.
Trong đoạn mã sau, chúng ta cài đặt các gói [dplyr](https://www.rdocumentation.org/packages/dplyr/versions/0.7.8) và [lubridate](https://www.rdocumentation.org/packages/lubridate/versions/1.8.0) để hỗ trợ thao tác và nhóm dữ liệu nhằm vẽ biểu đồ cột xếp chồng. Đầu tiên, bạn nhóm dữ liệu theo `Category` của chim và sau đó tóm tắt các cột `MinLength`, `MaxLength`, `MinBodyMass`, `MaxBodyMass`, `MinWingspan`, `MaxWingspan`. Sau đó, vẽ biểu đồ cột bằng gói `ggplot2` và chỉ định màu sắc cho các loại khác nhau và nhãn.


Tuy nhiên, biểu đồ cột này khó đọc vì có quá nhiều dữ liệu không được nhóm. Bạn cần chọn chỉ dữ liệu mà bạn muốn vẽ, vì vậy hãy xem xét chiều dài của chim dựa trên loại của chúng.
Bạn đầu tiên đếm các giá trị duy nhất trong cột `Category` và sau đó sắp xếp chúng vào một dataframe mới `birds_count`. Dữ liệu đã sắp xếp này sau đó được đưa vào cùng cấp để nó được vẽ theo cách đã sắp xếp. Sử dụng `ggplot2`, bạn sau đó vẽ dữ liệu trong một biểu đồ cột. Hàm `coord_flip()` vẽ các cột theo chiều ngang.
Biểu đồ cột này cho thấy một cái nhìn tốt về số lượng chim trong mỗi loại. Trong nháy mắt, bạn thấy rằng số lượng chim lớn nhất trong khu vực này thuộc loại Vịt/ngỗng/chim nước. Minnesota là "vùng đất của 10.000 hồ" nên điều này không có gì ngạc nhiên!


Điều này cung cấp một cái nhìn tổng quan về phân bố chung của chiều dài cơ thể theo từng bộ chim, nhưng đây không phải là cách tối ưu để hiển thị phân bố thực sự. Nhiệm vụ này thường được thực hiện bằng cách tạo biểu đồ Histogram.


Như bạn có thể thấy, hầu hết hơn 400 loài chim trong bộ dữ liệu này nằm trong phạm vi dưới 2000 cho khối lượng cơ thể tối đa của chúng. Tìm hiểu thêm về dữ liệu bằng cách thay đổi tham số `bins` thành một số lớn hơn, chẳng hạn như 30:
@ -56,7 +56,7 @@ Như bạn có thể thấy, hầu hết hơn 400 loài chim trong bộ dữ li
Biểu đồ này hiển thị phân bố một cách chi tiết hơn. Một biểu đồ ít lệch về bên trái hơn có thể được tạo bằng cách đảm bảo rằng bạn chỉ chọn dữ liệu trong một phạm vi nhất định:


✅ Thử một số bộ lọc và điểm dữ liệu khác. Để xem toàn bộ phân bố của dữ liệu, loại bỏ bộ lọc `['MaxBodyMass']` để hiển thị các phân bố có nhãn.


Dường như không có mối tương quan tốt giữa sải cánh tối thiểu và tình trạng bảo tồn. Thử nghiệm các yếu tố khác của bộ dữ liệu bằng phương pháp này. Bạn có thể thử các bộ lọc khác nhau. Bạn có tìm thấy mối tương quan nào không?
@ -128,7 +128,7 @@ Hãy làm việc với biểu đồ mật độ ngay bây giờ!
Bạn có thể thấy cách biểu đồ phản ánh biểu đồ trước đó về dữ liệu sải cánh tối thiểu; nó chỉ mượt mà hơn một chút. Nếu bạn muốn xem lại đường gấp khúc của MaxBodyMass trong biểu đồ thứ hai mà bạn đã tạo, bạn có thể làm mượt nó rất tốt bằng cách tạo lại nó bằng phương pháp này:
@ -136,7 +136,7 @@ Bạn có thể thấy cách biểu đồ phản ánh biểu đồ trước đó


✅ Đọc về các tham số có sẵn cho loại biểu đồ này và thử nghiệm!
@ -154,7 +154,7 @@ Loại biểu đồ này cung cấp các hình ảnh trực quan giải thích r
ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) +
geom_density(alpha=0.5)
```


Voila, một biểu đồ tròn hiển thị tỷ lệ của dữ liệu này theo hai lớp nấm. Điều rất quan trọng là phải sắp xếp đúng thứ tự của các nhãn, đặc biệt ở đây, vì vậy hãy chắc chắn kiểm tra thứ tự mà mảng nhãn được xây dựng!
Trong bài học này, bạn đã học ba cách để trực quan hóa tỷ lệ. Đầu tiên, bạn cần nhóm dữ liệu của mình thành các danh mục và sau đó quyết định cách tốt nhất để hiển thị dữ liệu - biểu đồ tròn, donut, hoặc waffle. Tất cả đều hấp dẫn và mang lại cho người dùng một cái nhìn nhanh về bộ dữ liệu.
Bây giờ, hiển thị cùng dữ liệu với bảng màu mật ong để thể hiện cách giá thay đổi theo năm. Bạn có thể làm điều này bằng cách thêm tham số 'scale_color_gradientn' để hiển thị sự thay đổi theo năm:
@ -52,7 +52,7 @@ Bây giờ, hiển thị cùng dữ liệu với bảng màu mật ong để th
ggplot(honey, aes(x = priceperlb, y = state, color=year)) +
Với sự thay đổi bảng màu này, bạn có thể thấy rõ ràng rằng có một sự tiến triển mạnh mẽ theo năm về giá mật ong mỗi pound. Thực tế, nếu bạn xem xét một tập mẫu trong dữ liệu để xác minh (chọn một bang cụ thể, ví dụ Arizona), bạn có thể thấy một xu hướng tăng giá theo năm, với một vài ngoại lệ:
Đây có phải là một trường hợp đơn giản của cung và cầu? Do các yếu tố như biến đổi khí hậu và sự sụp đổ của đàn ong, liệu có ít mật ong hơn để mua theo năm, dẫn đến giá tăng?
Trả lời: Không hẳn. Nếu bạn xem xét tổng sản lượng, thực tế nó dường như đã tăng trong năm đó, mặc dù nhìn chung lượng mật ong được sản xuất đang giảm trong những năm này.
Đối với tập dữ liệu này, không có điều gì đặc biệt nổi bật liên quan đến số lượng đàn ong và sản lượng của chúng theo năm và theo bang. Liệu có cách khác để tìm mối tương quan giữa hai biến này?
Mặc dù không có điều gì nổi bật vào khoảng năm 2003, điều này cho phép chúng ta kết thúc bài học với một ghi chú vui vẻ hơn: mặc dù số lượng đàn ong đang giảm, số lượng đàn ong đang ổn định ngay cả khi sản lượng mỗi đàn đang giảm.
@ -38,25 +38,25 @@ Trong các bài học trước, bạn đã thử nghiệm xây dựng nhiều lo
Ngay cả khi một nhà khoa học dữ liệu cẩn thận chọn đúng biểu đồ cho dữ liệu, vẫn có nhiều cách để dữ liệu được trình bày nhằm chứng minh một quan điểm, thường là làm tổn hại đến tính chính xác của dữ liệu. Có rất nhiều ví dụ về các biểu đồ và đồ họa thông tin gây hiểu lầm!
[](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie")
[](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie")
> 🎥 Nhấp vào hình ảnh trên để xem một bài nói chuyện về các biểu đồ gây hiểu lầm
Biểu đồ này đảo ngược trục X để hiển thị điều ngược lại với sự thật, dựa trên ngày tháng:
[Biểu đồ này](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) thậm chí còn gây hiểu lầm hơn, vì mắt người bị thu hút về phía bên phải để kết luận rằng, theo thời gian, số ca COVID đã giảm ở các quận khác nhau. Thực tế, nếu bạn nhìn kỹ vào các ngày tháng, bạn sẽ thấy chúng đã được sắp xếp lại để tạo ra xu hướng giảm giả.
Ví dụ nổi tiếng này sử dụng màu sắc VÀ trục Y bị lật để đánh lừa: thay vì kết luận rằng số ca tử vong do súng tăng vọt sau khi thông qua luật thân thiện với súng, mắt người lại bị đánh lừa để nghĩ điều ngược lại:
So sánh những thứ không thể so sánh là một thủ thuật mờ ám khác. Có một [trang web tuyệt vời](https://tylervigen.com/spurious-correlations) về 'mối tương quan giả' hiển thị các 'sự thật' như tỷ lệ ly hôn ở Maine và mức tiêu thụ bơ thực vật. Một nhóm trên Reddit cũng thu thập [các ví dụ xấu](https://www.reddit.com/r/dataisugly/top/?t=all) về việc sử dụng dữ liệu.
@ -91,13 +91,13 @@ Gắn nhãn các trục, cung cấp chú giải nếu cần thiết và cung c
Nếu dữ liệu của bạn là văn bản và dài dòng trên trục X, bạn có thể xoay góc văn bản để dễ đọc hơn. [plot3D](https://cran.r-project.org/web/packages/plot3D/index.html) cung cấp khả năng vẽ biểu đồ 3D nếu dữ liệu của bạn hỗ trợ. Các biểu đồ trực quan phức tạp có thể được tạo ra bằng cách sử dụng nó.
Một số biểu đồ trực quan tốt nhất hiện nay là biểu đồ động. Shirley Wu có những biểu đồ tuyệt vời được thực hiện bằng D3, chẳng hạn như '[film flowers](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', nơi mỗi bông hoa là một biểu đồ trực quan của một bộ phim. Một ví dụ khác cho Guardian là 'bussed out', một trải nghiệm tương tác kết hợp biểu đồ trực quan với Greensock và D3 cùng với định dạng bài viết cuộn để kể câu chuyện về cách NYC xử lý vấn đề người vô gia cư bằng cách đưa họ ra khỏi thành phố.
> "Bussed Out: How America Moves its Homeless" từ [the Guardian](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). Biểu đồ trực quan bởi Nadieh Bremer & Shirley Wu
@ -107,7 +107,7 @@ Mặc dù bài học này không đủ để đi sâu vào việc dạy các th
Bạn sẽ hoàn thành một ứng dụng web hiển thị một cái nhìn động về mạng xã hội này. Nó sử dụng một thư viện được xây dựng để tạo [biểu đồ mạng](https://github.com/emiliorizzo/vue-d3-network) bằng Vue.js và D3. Khi ứng dụng đang chạy, bạn có thể kéo các nút trên màn hình để sắp xếp lại dữ liệu.


> Ảnh của <ahref="https://unsplash.com/@jenna2980?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Jenna Lee</a> trên <ahref="https://unsplash.com/s/photos/bees-in-a-meadow?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
Việc hình ảnh hóa dữ liệu là một trong những nhiệm vụ quan trọng nhất của một nhà khoa học dữ liệu. Một hình ảnh có giá trị bằng 1000 từ, và hình ảnh trực quan có thể giúp bạn nhận ra nhiều khía cạnh thú vị của dữ liệu như đỉnh, giá trị ngoại lai, nhóm, xu hướng, và nhiều hơn nữa, giúp bạn hiểu câu chuyện mà dữ liệu đang cố gắng truyền tải.
Bài học này tập trung vào 3 phần của vòng đời: thu thập, xử lý và bảo trì.


> Ảnh của [Berkeley School of Information](https://ischoolonline.berkeley.edu/data-science/what-is-data-science/)
## Thu thập
@ -92,7 +92,7 @@ Khám phá [Vòng đời Quy trình Khoa học Dữ liệu của Nhóm](https://
|Quy trình Khoa học Dữ liệu của Nhóm (TDSP)|Quy trình tiêu chuẩn liên ngành cho khai thác dữ liệu (CRISP-DM)|
|--|--|
| |  |
| |  |
| Hình ảnh của [Microsoft](https://docs.microsoft.comazure/architecture/data-science-process/lifecycle) | Hình ảnh của [Data Science Process Alliance](https://www.datascience-pm.com/crisp-dm-2/) |
## [Câu hỏi sau bài giảng](https://ff-quizzes.netlify.app/en/ds/quiz/27)
> Ảnh của <ahref="https://unsplash.com/@headwayio?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Headway</a> trên <ahref="https://unsplash.com/s/photos/communication?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
Trong các bài học này, bạn sẽ khám phá một số khía cạnh của vòng đời Khoa học Dữ liệu, bao gồm phân tích và giao tiếp xoay quanh dữ liệu.
> Ảnh của [Jelleke Vanooteghem](https://unsplash.com/@ilumire) từ [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape)
Khi thực hiện khoa học dữ liệu với dữ liệu lớn, đám mây có thể là một yếu tố thay đổi cuộc chơi. Trong ba bài học tiếp theo, chúng ta sẽ tìm hiểu đám mây là gì và tại sao nó có thể rất hữu ích. Chúng ta cũng sẽ khám phá một tập dữ liệu về suy tim và xây dựng một mô hình để giúp đánh giá khả năng một người bị suy tim. Chúng ta sẽ sử dụng sức mạnh của đám mây để huấn luyện, triển khai và sử dụng mô hình theo hai cách khác nhau. Một cách sử dụng giao diện người dùng theo phong cách "Ít mã/Không mã", cách còn lại sử dụng Bộ công cụ phát triển phần mềm Azure Machine Learning (Azure ML SDK).
@ -32,7 +32,7 @@ Nhờ sự phổ biến của AI, các nhà phát triển hiện nay dễ dàng
* [Khoa học Dữ liệu trong Y tế](https://data-flair.training/blogs/data-science-in-healthcare/) - nhấn mạnh các ứng dụng như hình ảnh y tế (ví dụ: MRI, X-Ray, CT-Scan), genomics (giải trình tự DNA), phát triển thuốc (đánh giá rủi ro, dự đoán thành công), phân tích dự đoán (chăm sóc bệnh nhân & hậu cần cung cấp), theo dõi & phòng ngừa bệnh, v.v.
 Nguồn hình ảnh: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/)
 Nguồn hình ảnh: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/)
Hình minh họa cho thấy các lĩnh vực và ví dụ khác về việc áp dụng các kỹ thuật khoa học dữ liệu. Muốn khám phá thêm các ứng dụng khác? Hãy xem phần [Ôn tập & Tự học](../../../../6-Data-Science-In-Wild/20-Real-World-Examples) bên dưới.
@ -13,7 +13,7 @@ Giao diện Explorer (hiển thị trong ảnh chụp màn hình bên dưới) c
2. Khám phá [Danh mục bộ dữ liệu](https://planetarycomputer.microsoft.com/catalog) - tìm hiểu mục đích của từng bộ dữ liệu.
3. Sử dụng Explorer - chọn một bộ dữ liệu bạn quan tâm, chọn một truy vấn và tùy chọn hiển thị phù hợp.


`Nhiệm vụ của bạn:`
Bây giờ hãy nghiên cứu trực quan hóa được hiển thị trong trình duyệt và trả lời các câu hỏi sau:
# Khoa học dữ liệu cho người mới bắt đầu - Chương trình học
# Khoa học dữ liệu cho người mới bắt đầu - Một chương trình học
Azure Cloud Advocates tại Microsoft rất vui mừng giới thiệu một chương trình học kéo dài 10 tuần, 20 bài học, tất cả về Khoa học dữ liệu. Mỗi bài học đều bao gồm câu đố trước và sau bài học, hướng dẫn viết để hoàn thành bài học, giải pháp và bài tập. Phương pháp giảng dạy dựa trên dự án cho phép bạn học trong khi xây dựng, một cách đã được chứng minh giúp kỹ năng mới "bám chắc".
[](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=344191198)
**Xin gửi lời cảm ơn chân thành tới các tác giả của chúng tôi:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer).
[](https://GitHub.com/microsoft/Data-Science-For-Beginners/issues/)
[](https://GitHub.com/microsoft/Data-Science-For-Beginners/pulls/)
**🙏 Cảm ơn đặc biệt 🙏 tới các tác giả, người đánh giá và người đóng góp nội dung [Đại sứ Sinh viên Microsoft](https://studentambassadors.microsoft.com/),** đặc biệt là Aaryan Arora, [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), ChhailBihari Dubey, [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Rohit Yadav](https://www.linkedin.com/in/rty2423), Samridhi Sharma, [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200),
[](https://GitHub.com/microsoft/Data-Science-For-Beginners/watchers/)
[](https://aka.ms/foundry/forum)
Nhóm Đại sứ Đám mây Azure tại Microsoft vui mừng cung cấp một chương trình học 10 tuần, 20 bài học toàn bộ về Khoa học Dữ liệu. Mỗi bài học bao gồm kiểm tra trước và sau bài, hướng dẫn chi tiết để hoàn thành bài học, lời giải và bài tập. Phương pháp học dựa trên dự án cho phép bạn học trong khi xây dựng, một cách đã được chứng minh để các kỹ năng mới "bám dính".
**Xin chân thành cảm ơn các tác giả của chúng tôi:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer).
**🙏 Đặc biệt cảm ơn 🙏 các tác giả, người đánh giá và đóng góp nội dung [Đại sứ Sinh viên Microsoft](https://studentambassadors.microsoft.com/),** đặc biệt là Aaryan Arora, [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), ChhailBihari Dubey, [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Rohit Yadav](https://www.linkedin.com/in/rty2423), Samridhi Sharma, [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200),
> Kho lưu trữ này bao gồm hơn 50 bản dịch ngôn ngữ làm tăng đáng kể kích thước tải về. Để sao chép mà không có các bản dịch, hãy sử dụng sparse checkout:
> **Thích sao chép về máy (Clone) cục bộ?**
>
> Kho lưu trữ này bao gồm hơn 50 bản dịch ngôn ngữ, điều này làm tăng đáng kể kích thước tải xuống. Để sao chép mà không có bản dịch, hãy sử dụng sparse checkout:
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Điều này cho bạn mọi thứ bạn cần để hoàn thành khóa học với tốc độ tải xuống nhanh hơn nhiều.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**Nếu bạn muốn thêm các ngôn ngữ dịch hỗ trợ, danh sách có tại [đây](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**Nếu bạn muốn hỗ trợ thêm các ngôn ngữ dịch thuật, các ngôn ngữ được hỗ trợ được liệt kê [tại đây](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
Chúng tôi có một chuỗi học tập trên Discord với chủ đề AI đang diễn ra, tìm hiểu thêm và tham gia cùng chúng tôi tại [Chuỗi học với AI](https://aka.ms/learnwithai/discord) từ ngày 18 đến 30 tháng 9 năm 2025. Bạn sẽ nhận được mẹo và thủ thuật sử dụng GitHub Copilot cho Khoa học dữ liệu.
Chúng tôi có một chuỗi học tập Discord với chủ đề AI đang diễn ra, tìm hiểu thêm và tham gia với chúng tôi tại [Chuỗi học với AI](https://aka.ms/learnwithai/discord) từ ngày 18 đến 30 tháng 9 năm 2025. Bạn sẽ nhận được các mẹo và thủ thuật sử dụng GitHub Copilot cho Khoa học Dữ liệu.

# Bạn là sinh viên?
Bắt đầu với những tài nguyên sau:
Bắt đầu với các tài nguyên sau đây:
- [Trang Trung tâm Sinh viên](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) Trên trang này, bạn sẽ tìm thấy tài nguyên dành cho người mới bắt đầu, gói dành cho sinh viên và thậm chí là cách để nhận phiếu chứng chỉ miễn phí. Đây là trang bạn nên đánh dấu và kiểm tra định kỳ vì chúng tôi cập nhật nội dung ít nhất hàng tháng.
- [Đại sứ Sinh viên Microsoft](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) Tham gia cộng đồng đại sứ sinh viên toàn cầu, đây có thể là cơ hội của bạn để vào Microsoft.
- [Trang Trung tâm Sinh viên](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) Trong trang này, bạn sẽ tìm thấy tài nguyên dành cho người mới bắt đầu, bộ dụng cụ dành cho sinh viên và thậm chí cả cách nhận phiếu chứng nhận miễn phí. Đây là trang bạn nên đánh dấu trang và kiểm tra định kỳ vì chúng tôi thay đổi nội dung ít nhất hàng tháng.
- [Đại sứ Sinh viên Microsoft Learn](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) Tham gia cộng đồng đại sứ sinh viên toàn cầu, đây có thể là con đường của bạn vào Microsoft.
# Bắt đầu
## 📚 Tài liệu
- **[Hướng dẫn cài đặt](INSTALLATION.md)** - Hướng dẫn từng bước cho người mới bắt đầu
- **[Hướng dẫn sử dụng](USAGE.md)** - Ví dụ và quy trình làm việc thường dùng
- **[Hướng dẫn Cài đặt](INSTALLATION.md)** - Hướng dẫn từng bước thiết lập cho người mới bắt đầu
- **[Hướng dẫn Sử dụng](USAGE.md)** - Ví dụ và các quy trình làm việc phổ biến
- **[Khắc phục sự cố](TROUBLESHOOTING.md)** - Giải pháp cho các vấn đề thường gặp
- **[Hướng dẫn đóng góp](CONTRIBUTING.md)** - Cách đóng góp vào dự án này
- **[Dành cho giáo viên](for-teachers.md)** - Hướng dẫn giảng dạy và tài nguyên lớp học
- **[Hướng dẫn Đóng góp](CONTRIBUTING.md)** - Cách đóng góp cho dự án này
- **[Dành cho Giáo viên](for-teachers.md)** - Hướng dẫn giảng dạy và tài nguyên lớp học
## 👨🎓 Dành cho sinh viên
> **Người mới hoàn toàn**: Mới học khoa học dữ liệu? Bắt đầu với các [ví dụ dành cho người mới](examples/README.md)! Những ví dụ đơn giản, có chú thích rõ ràng này sẽ giúp bạn hiểu cơ bản trước khi vào chương trình học đầy đủ.
> **[Sinh viên](https://aka.ms/student-page)**: để sử dụng chương trình học này một mình, bạn fork toàn bộ repo và hoàn thành các bài tập một mình, bắt đầu với bài kiểm tra trước bài học. Sau đó đọc bài giảng và hoàn thành các hoạt động còn lại. Cố gắng tạo dự án bằng cách hiểu bài học hơn là sao chép mã giải pháp; tuy nhiên, mã đó có sẵn trong thư mục /solutions ở mỗi bài học dự án. Một ý tưởng khác là lập nhóm học với bạn bè để cùng học nội dung. Để học thêm, chúng tôi khuyên dùng [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum).
## 👨🎓 Dành cho Sinh viên
> **Người Mới Hoàn Toàn:** Mới bắt đầu với khoa học dữ liệu? Bắt đầu với các [ví dụ thân thiện cho người mới](examples/README.md)! Những ví dụ đơn giản, có chú thích đầy đủ này sẽ giúp bạn hiểu các khái niệm cơ bản trước khi bước vào toàn bộ chương trình.
> **[Sinh viên](https://aka.ms/student-page):** để sử dụng chương trình này một cách độc lập, hãy fork toàn bộ repo và hoàn thành các bài tập một mình, bắt đầu với bài kiểm tra trước bài giảng. Sau đó đọc bài giảng và hoàn thành các hoạt động còn lại. Hãy cố gắng tạo các dự án bằng cách hiểu bài học thay vì sao chép mã giải pháp; tuy nhiên, mã đó có sẵn trong thư mục /solutions trong mỗi bài học theo dự án. Một ý tưởng khác là lập nhóm học với bạn bè và cùng nhau học nội dung. Để học thêm, chúng tôi khuyên dùng [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum).
**Khởi động nhanh:**
1. Xem [Hướng dẫn cài đặt](INSTALLATION.md) để thiết lập môi trường của bạn
2. Xem lại [Hướng dẫn sử dụng](USAGE.md) để học cách làm việc với chương trình
3. Bắt đầu với Bài học 1 và làm tuần tự
4. Tham gia [cộng đồng Discord](https://aka.ms/ds4beginners/discord) để được hỗ trợ
**Bắt đầu nhanh:**
1. Kiểm tra [Hướng dẫn Cài đặt](INSTALLATION.md) để thiết lập môi trường của bạn
2. Xem qua [Hướng dẫn Sử dụng](USAGE.md) để học cách làm việc với chương trình học
3. Bắt đầu với Bài 1 và làm lần lượt theo thứ tự
4. Tham gia cộng đồng [Discord của chúng tôi](https://aka.ms/ds4beginners/discord) để được hỗ trợ
## 👩🏫 Dành cho giáo viên
## 👩🏫 Dành cho Giáo viên
> **Giáo viên**: chúng tôi đã [bao gồm một số đề xuất](for-teachers.md) về cách sử dụng chương trình giảng dạy này. Chúng tôi rất mong nhận được phản hồi của bạn [trong diễn đàn thảo luận của chúng tôi](https://github.com/microsoft/Data-Science-For-Beginners/discussions)!
> **Giáo viên:** chúng tôi đã [bao gồm một số gợi ý](for-teachers.md) về cách sử dụng chương trình học này. Rất mong nhận được phản hồi từ bạn [trong diễn đàn thảo luận của chúng tôi](https://github.com/microsoft/Data-Science-For-Beginners/discussions)!
@ -78,30 +105,30 @@ Bắt đầu với những tài nguyên sau:
## Phương pháp giảng dạy
Chúng tôi đã chọn hai nguyên tắc sư phạm khi xây dựng chương trình này: đảm bảo rằng nó dựa trên dự án và bao gồm các bài kiểm tra thường xuyên. Vào cuối chuỗi này, học viên sẽ học được các nguyên tắc cơ bản của khoa học dữ liệu, bao gồm các khái niệm đạo đức, chuẩn bị dữ liệu, các cách làm việc với dữ liệu khác nhau, trực quan hóa dữ liệu, phân tích dữ liệu, các trường hợp ứng dụng khoa học dữ liệu trong thực tế và hơn thế nữa.
Chúng tôi đã chọn hai nguyên tắc sư phạm khi xây dựng chương trình giảng dạy này: đảm bảo rằng nó dựa trên dự án và bao gồm các bài kiểm tra thường xuyên. Vào cuối chuỗi này, học viên sẽ học được các nguyên tắc cơ bản về khoa học dữ liệu, bao gồm các khái niệm về đạo đức, chuẩn bị dữ liệu, các cách khác nhau để làm việc với dữ liệu, trực quan hóa dữ liệu, phân tích dữ liệu, các trường hợp sử dụng khoa học dữ liệu trong thực tế, và nhiều hơn nữa.
Ngoài ra, một bài kiểm tra nhẹ trước lớp giúp học viên có ý định học tập rõ ràng về chủ đề, trong khi bài kiểm tra thứ hai sau lớp giúp củng cố kiến thức. Chương trình này được thiết kế linh hoạt và vui nhộn, có thể học toàn bộ hoặc theo từng phần. Các dự án bắt đầu nhỏ và trở nên phức tạp hơn vào cuối chu kỳ 10 tuần.
Ngoài ra, một bài kiểm tra nhẹ nhàng trước lớp tạo ý định học tập cho học viên về một chủ đề, trong khi bài kiểm tra thứ hai sau lớp đảm bảo việc ghi nhớ lâu dài hơn. Chương trình giảng dạy này được thiết kế để linh hoạt và thú vị, có thể học toàn bộ hoặc một phần. Các dự án bắt đầu nhỏ và ngày càng phức tạp hơn vào cuối chu kỳ 10 tuần.
> Tìm [Bộ Quy tắc Ứng xử](CODE_OF_CONDUCT.md), [Đóng góp](CONTRIBUTING.md), [Dịch thuật](TRANSLATIONS.md) của chúng tôi. Chúng tôi hoan nghênh phản hồi xây dựng từ bạn!
> Tìm [Bộ Quy tắc Ứng xử](CODE_OF_CONDUCT.md), hướng dẫn [Đóng góp](CONTRIBUTING.md), [Dịch thuật](TRANSLATIONS.md). Chúng tôi hoan nghênh phản hồi mang tính xây dựng của bạn!
## Mỗi bài học bao gồm:
- Ghi chú minh họa tùy chọn
- Video bổ trợ tùy chọn
- Bài kiểm tra làm nóng trước bài học
- Sketchnote tùy chọn
- Video bổ sung tùy chọn
- Bài kiểm tra khởi động trước bài học
- Bài học bằng văn bản
- Đối với bài học dựa trên dự án, hướng dẫn từng bước cách xây dựng dự án
- Đối với các bài học dựa trên dự án, hướng dẫn từng bước cách xây dựng dự án
- Kiểm tra kiến thức
- Thử thách
- Đọc thêm bổ trợ
- Một thử thách
- Đọc thêm bổ sung
- Bài tập
- [Bài kiểm tra sau bài học](https://ff-quizzes.netlify.app/en/)
> **Lưu ý về bài kiểm tra**: Tất cả các bài kiểm tra nằm trong thư mục Quiz-App, tổng cộng 40 bài kiểm tra mỗi bài có 3 câu hỏi. Chúng được liên kết trong các bài học, nhưng ứng dụng kiểm tra có thể chạy cục bộ hoặc triển khai trên Azure; làm theo hướng dẫn trong thư mục `quiz-app`. Chúng đang được địa phương hóa dần dần.
> **Lưu ý về các bài kiểm tra**: Tất cả các bài kiểm tra đều nằm trong thư mục Quiz-App, tổng cộng 40 bài kiểm tra với mỗi bài 3 câu hỏi. Các bài kiểm tra được liên kết trong các bài học, nhưng ứng dụng kiểm tra có thể chạy cục bộ hoặc được triển khai trên Azure; hãy làm theo hướng dẫn trong thư mục `quiz-app`. Các bài kiểm tra đang được dịch dần dần.
## 🎓 Ví dụ thân thiện với người mới bắt đầu
## 🎓 Ví dụ Thân thiện với Người mới bắt đầu
**Mới với Khoa học Dữ liệu?** Chúng tôi đã tạo một thư mục [ví dụ đặc biệt](examples/README.md) với mã nguồn đơn giản, có chú thích rõ ràng để giúp bạn bắt đầu:
**Mới làm quen với Khoa học Dữ liệu?** Chúng tôi đã tạo một [thư mục ví dụ đặc biệt](examples/README.md) với mã nguồn đơn giản, có chú thích rõ ràng để giúp bạn bắt đầu:
- 🌟 **Hello World** - Chương trình khoa học dữ liệu đầu tiên của bạn
- 📂 **Tải Dữ liệu** - Học cách đọc và khám phá bộ dữ liệu
@ -109,128 +136,128 @@ Ngoài ra, một bài kiểm tra nhẹ trước lớp giúp học viên có ý
- 📈 **Trực quan hóa Cơ bản** - Tạo biểu đồ và đồ thị
- 🔬 **Dự án Thực tế** - Quy trình hoàn chỉnh từ đầu đến cuối
Mỗi ví dụ đều có chú thích chi tiết giải thích từng bước, rất phù hợp cho người mới hoàn toàn!
Mỗi ví dụ đều có chú thích chi tiết giải thích từng bước, rất phù hợp cho người mới bắt đầu tuyệt đối!
👉 **[Bắt đầu với các ví dụ](examples/README.md)** 👈
## Các bài học
||
||
|:---:|
| Khoa học Dữ liệu cho Người Mới Bắt Đầu: Lộ trình - _Ghi chú minh họa bởi [@nitya](https://twitter.com/nitya)_ |
| Lộ trình Khoa học Dữ liệu cho Người mới bắt đầu - _Sketchnote bởi [@nitya](https://twitter.com/nitya)_ |
| Số bài học | Chủ đề | Nhóm bài học | Mục tiêu học tập | Bài học liên kết | Tác giả |
| 01 | Định nghĩa Khoa học Dữ liệu | [Giới thiệu](1-Introduction/README.md) | Học các khái niệm cơ bản về khoa học dữ liệu và cách nó liên quan đến trí tuệ nhân tạo, máy học và dữ liệu lớn. | [bài học](1-Introduction/01-defining-data-science/README.md) [video](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) |
| 02 | Đạo đức trong Khoa học Dữ liệu | [Giới thiệu](1-Introduction/README.md) | Khái niệm, thách thức và khuôn khổ về Đạo đức dữ liệu. | [bài học](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) |
| 03 | Định nghĩa Dữ liệu | [Giới thiệu](1-Introduction/README.md) | Cách dữ liệu được phân loại và các nguồn dữ liệu phổ biến. | [bài học](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) |
| 01 | Định nghĩa Khoa học Dữ liệu | [Giới thiệu](1-Introduction/README.md) | Tìm hiểu các khái niệm cơ bản về khoa học dữ liệu và mối liên hệ của nó với trí tuệ nhân tạo, học máy và dữ liệu lớn. | [bài học](1-Introduction/01-defining-data-science/README.md) [video](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) |
| 02 | Đạo đức Khoa học Dữ liệu | [Giới thiệu](1-Introduction/README.md) | Các khái niệm, thách thức và khuôn khổ về đạo đức dữ liệu. | [bài học](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) |
| 03 | Định nghĩa Dữ liệu | [Giới thiệu](1-Introduction/README.md) | Cách phân loại dữ liệu và các nguồn phổ biến của nó. | [bài học](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) |
| 04 | Giới thiệu về Thống kê & Xác suất | [Giới thiệu](1-Introduction/README.md) | Các kỹ thuật toán học về xác suất và thống kê để hiểu dữ liệu. | [bài học](1-Introduction/04-stats-and-probability/README.md) [video](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) |
| 05 | Làm việc với Dữ liệu Quan hệ | [Làm việc với Dữ liệu](2-Working-With-Data/README.md) | Giới thiệu dữ liệu quan hệ và những kiến thức cơ bản về khám phá và phân tích dữ liệu quan hệ với Ngôn ngữ truy vấn có cấu trúc, còn gọi là SQL (phát âm "xì kuyn"). | [bài học](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | |
| 06 | Làm việc với Dữ liệu NoSQL | [Làm việc với Dữ liệu](2-Working-With-Data/README.md) | Giới thiệu dữ liệu phi quan hệ, các loại khác nhau và các kiến thức cơ bản về khám phá và phân tích cơ sở dữ liệu tài liệu. | [bài học](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)|
| 07 | Làm việc với Python | [Làm việc với Dữ liệu](2-Working-With-Data/README.md) | Kiến thức cơ bản sử dụng Python để khám phá dữ liệu với các thư viện như Pandas. Khuyến nghị có kiến thức nền tảng về lập trình Python. | [bài học](2-Working-With-Data/07-python/README.md) [video](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) |
| 08 | Chuẩn bị Dữ liệu | [Làm việc với Dữ liệu](2-Working-With-Data/README.md) | Các chủ đề về kỹ thuật dữ liệu để làm sạch và chuyển đổi dữ liệu nhằm giải quyết các thách thức về dữ liệu thiếu, không chính xác hoặc không đầy đủ. | [bài học](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) |
| 09 | Trực quan hóa Số lượng | [Trực quan hóa Dữ liệu](3-Data-Visualization/README.md) | Học cách sử dụng Matplotlib để trực quan hóa dữ liệu chim 🦆 | [bài học](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) |
| 10 | Trực quan hóa Phân phối Dữ liệu | [Trực quan hóa Dữ liệu](3-Data-Visualization/README.md) | Trực quan hóa các quan sát và xu hướng trong một khoảng. | [bài học](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) |
| 11 | Trực quan hóa Tỉ lệ | [Trực quan hóa Dữ liệu](3-Data-Visualization/README.md) | Trực quan hóa phần trăm rời rạc và nhóm. | [bài học](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) |
| 12 | Trực quan hóa Mối quan hệ | [Trực quan hóa Dữ liệu](3-Data-Visualization/README.md) | Trực quan hóa các kết nối và tương quan giữa các tập dữ liệu và các biến của chúng. | [bài học](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) |
| 13 | Trực quan hóa Có ý nghĩa | [Trực quan hóa Dữ liệu](3-Data-Visualization/README.md) | Kỹ thuật và hướng dẫn để làm cho các trực quan hóa của bạn có giá trị trong việc giải quyết vấn đề và rút ra cái nhìn sâu sắc hiệu quả. | [bài học](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) |
| 14 | Giới thiệu Chu trình Khoa học Dữ liệu | [Chu trình](4-Data-Science-Lifecycle/README.md) | Giới thiệu chu trình khoa học dữ liệu và bước đầu tiên là thu thập và khai thác dữ liệu. | [bài học](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) |
| 15 | Phân tích | [Chu trình](4-Data-Science-Lifecycle/README.md) | Giai đoạn này của chu trình khoa học dữ liệu tập trung vào kỹ thuật phân tích dữ liệu. | [bài học](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | |
| 16 | Truyền đạt | [Chu trình](4-Data-Science-Lifecycle/README.md) | Giai đoạn này của chu trình khoa học dữ liệu tập trung vào việc trình bày những cái nhìn sâu sắc từ dữ liệu theo cách giúp người ra quyết định dễ hiểu hơn. | [bài học](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | |
| 17 | Khoa học Dữ liệu trên Đám mây | [Dữ liệu Đám mây](5-Data-Science-In-Cloud/README.md) | Chuỗi bài học này giới thiệu khoa học dữ liệu trên đám mây và các lợi ích của nó. | [bài học](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) và [Maud](https://twitter.com/maudstweets) |
| 18 | Khoa học Dữ liệu trên Đám mây | [Dữ liệu Đám mây](5-Data-Science-In-Cloud/README.md) | Huấn luyện mô hình bằng công cụ Low Code. |[bài học](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) và [Maud](https://twitter.com/maudstweets) |
| 05 | Làm việc với Dữ liệu Quan hệ | [Làm việc với dữ liệu](2-Working-With-Data/README.md) | Giới thiệu về dữ liệu quan hệ và cơ bản về khám phá và phân tích dữ liệu quan hệ với Ngôn ngữ Truy vấn Có cấu trúc, còn gọi là SQL (phát âm “xi-kwel”). | [bài học](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | |
| 06 | Làm việc với Dữ liệu NoSQL | [Làm việc với dữ liệu](2-Working-With-Data/README.md) | Giới thiệu về dữ liệu phi quan hệ, các loại khác nhau của nó và cơ bản về khám phá và phân tích các cơ sở dữ liệu tài liệu. | [bài học](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)|
| 07 | Làm việc với Python | [Làm việc với dữ liệu](2-Working-With-Data/README.md) | Cơ bản về sử dụng Python để khám phá dữ liệu với các thư viện như Pandas. Khuyến nghị có kiến thức nền tảng về lập trình Python. | [bài học](2-Working-With-Data/07-python/README.md) [video](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) |
| 08 | Chuẩn bị Dữ liệu | [Làm việc với dữ liệu](2-Working-With-Data/README.md) | Các chủ đề về kỹ thuật dữ liệu để làm sạch và chuyển đổi dữ liệu nhằm xử lý các thách thức về dữ liệu thiếu, không chính xác hoặc không đầy đủ. | [bài học](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) |
| 09 | Trực quan hóa Số lượng | [Trực quan hóa dữ liệu](3-Data-Visualization/README.md) | Học cách sử dụng Matplotlib để trực quan hóa dữ liệu chim 🦆 | [bài học](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) |
| 10 | Trực quan hóa Phân bố Dữ liệu | [Trực quan hóa dữ liệu](3-Data-Visualization/README.md) | Trực quan hóa các quan sát và xu hướng trong một khoảng. | [bài học](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) |
| 11 | Trực quan hóa Tỷ lệ | [Trực quan hóa dữ liệu](3-Data-Visualization/README.md) | Trực quan hóa các phần trăm rời rạc và nhóm. | [bài học](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) |
| 12 | Trực quan hóa Mối quan hệ | [Trực quan hóa dữ liệu](3-Data-Visualization/README.md) | Trực quan hóa các kết nối và tương quan giữa các bộ dữ liệu và các biến của chúng. | [bài học](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) |
| 13 | Trực quan hóa Có ý nghĩa | [Trực quan hóa dữ liệu](3-Data-Visualization/README.md) | Các kỹ thuật và hướng dẫn giúp trực quan hóa của bạn có giá trị cho việc giải quyết vấn đề và sẽ kiến hiệu quả. | [bài học](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) |
| 14 | Giới thiệu về Vòng đời Khoa học Dữ liệu | [Vòng đời](4-Data-Science-Lifecycle/README.md) | Giới thiệu về vòng đời khoa học dữ liệu và bước đầu tiên là thu thập và trích xuất dữ liệu. | [bài học](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) |
| 15 | Phân tích | [Vòng đời](4-Data-Science-Lifecycle/README.md) | Giai đoạn này của vòng đời khoa học dữ liệu tập trung vào các kỹ thuật phân tích dữ liệu. | [bài học](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | |
| 16 | Giao tiếp | [Vòng đời](4-Data-Science-Lifecycle/README.md) | Giai đoạn này của vòng đời khoa học dữ liệu tập trung vào việc trình bày những hiểu biết từ dữ liệu theo cách giúp người ra quyết định dễ hiểu hơn. | [bài học](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | |
| 17 | Khoa học Dữ liệu trên Đám mây | [Dữ liệu Đám mây](5-Data-Science-In-Cloud/README.md) | Chuỗi bài học này giới thiệu về khoa học dữ liệu trên đám mây và các lợi ích của nó. | [bài học](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) và [Maud](https://twitter.com/maudstweets) |
| 18 | Khoa học Dữ liệu trên Đám mây | [Dữ liệu Đám mây](5-Data-Science-In-Cloud/README.md) | Huấn luyện mô hình sử dụng công cụ Low Code. |[bài học](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) và [Maud](https://twitter.com/maudstweets) |
| 19 | Khoa học Dữ liệu trên Đám mây | [Dữ liệu Đám mây](5-Data-Science-In-Cloud/README.md) | Triển khai mô hình với Azure Machine Learning Studio. | [bài học](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) và [Maud](https://twitter.com/maudstweets) |
| 20 | Khoa học Dữ liệu ngoài thực tế | [Thực tế](6-Data-Science-In-Wild/README.md) | Các dự án dựa trên khoa học dữ liệu trong thế giới thực. | [bài học](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) |
| 20 | Khoa học Dữ liệu trong Thực tế | [Trong Thực tế](6-Data-Science-In-Wild/README.md) | Các dự án dựa trên khoa học dữ liệu trong thế giới thực. | [bài học](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) |
## GitHub Codespaces
Thực hiện các bước sau để mở mẫu này trong Codespace:
1. Nhấp vào menu thả xuống Code và chọn tùy chọn Open with Codespaces.
2. Chọn + New codespace ở dưới cùng của khung.
Để biết thêm thông tin, hãy xem [tài liệu GitHub](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace).
Làm theo các bước sau để mở mẫu này trong một Codespace:
1. Nhấp vào menu thả xuống Code và chọn tùy chọn Mở với Codespaces.
2. Chọn + Codespace mới ở dưới cùng của bảng điều khiển.
Để biết thêm thông tin, xem [tài liệu GitHub](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace).
## VSCode Remote - Containers
Thực hiện các bước sau để mở kho lưu trữ này trong container sử dụng máy tính cục bộ và VSCode với tiện ích mở rộng VS Code Remote - Containers:
Làm theo các bước này để mở kho lưu trữ này trong container sử dụng máy tính cục bộ của bạn và VSCode với phần mở rộng VS Code Remote - Containers:
1. Nếu đây là lần đầu bạn dùng container phát triển, hãy đảm bảo hệ thống bạn đáp ứng các yêu cầu trước (ví dụ đã cài Docker) trong [tài liệu bắt đầu](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started).
1. Nếu đây là lần đầu bạn sử dụng container phát triển, hãy đảm bảo hệ thống của bạn đáp ứng các yêu cầu trước (ví dụ đã cài Docker) trong [tài liệu hướng dẫn bắt đầu](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started).
Để sử dụng kho lưu trữ này, bạn có thể mở kho lưu trữ trong một volume Docker cách ly:
Để sử dụng kho lưu trữ này, bạn có thể mở kho lưu trữ trong một volume Docker cô lập:
**Lưu ý**: Thao tác này sẽ dùng lệnh Remote-Containers: **Clone Repository in Container Volume...** để clone mã nguồn vào volume Docker thay vì hệ thống tập tin cục bộ. [Volumes](https://docs.docker.com/storage/volumes/) là cơ chế được ưu tiên để lưu trữ dữ liệu container.
**Lưu ý**: Về mặt kỹ thuật, điều này sẽ sử dụng lệnh Remote-Containers: **Clone Repository in Container Volume...** để nhân bản mã nguồn trong một volume Docker thay vì trong hệ thống tệp cục bộ. [Volumes](https://docs.docker.com/storage/volumes/) là cơ chế ưu tiên để lưu trữ dữ liệu container.
Hoặc mở phiên bản kho lưu trữ đã clone hoặc tải về cục bộ:
Hoặc mở bản sao đã clone hoặc tải về kho lưu trữ tại máy cục bộ:
- Clone kho lưu trữ này vào hệ thống tập tin cục bộ.
- Clone kho lưu trữ này về hệ thống tập tin cục bộ.
- Nhấn F1 và chọn lệnh **Remote-Containers: Open Folder in Container...**.
- Chọn bản copy đã clone của thư mục này, chờ container khởi động, rồi thử nghiệm.
- Chọn thư mục đã clone này, chờ container khởi động và thử nghiệm.
## Truy cập ngoại tuyến
Bạn có thể chạy tài liệu này ngoại tuyến bằng cách dùng [Docsify](https://docsify.js.org/#/). Fork repo này, [cài đặt Docsify](https://docsify.js.org/#/quickstart) trên máy cục bộ, sau đó trong thư mục gốc của repo, gõ `docsify serve`. Trang web sẽ được phục vụ trên cổng 3000 trên localhost của bạn: `localhost:3000`.
Bạn có thể chạy tài liệu này ngoại tuyến bằng cách sử dụng [Docsify](https://docsify.js.org/#/). Fork repo này, [cài đặt Docsify](https://docsify.js.org/#/quickstart) trên máy cục bộ, sau đó ở thư mục gốc của repo, gõ lệnh `docsify serve`. Trang web sẽ được phục vụ tại cổng 3000 trên localhost của bạn: `localhost:3000`.
> Lưu ý, các notebook sẽ không hiển thị qua Docsify, vì vậy khi cần chạy notebook, hãy làm riêng trong VS Code với kernel Python.
> Lưu ý, các notebook sẽ không được render qua Docsify, nên khi cần chạy notebook, hãy chạy riêng trong VS Code với kernel Python.
## Các chương trình học khác
## Các Chương trình Giảng dạy Khác
Đội ngũ của chúng tôi còn sản xuất các chương trình học khác! Hãy xem:
Nhóm chúng tôi còn sản xuất các chương trình giảng dạy khác! Hãy xem qua:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Chuỗi AI tạo sinh
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### Chuỗi AI Sinh tạo
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### Học cơ bản
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
### Học tập cốt lõi
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Chuỗi Copilot
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
**Gặp sự cố?** Hãy xem [Hướng dẫn Khắc phục sự cố](TROUBLESHOOTING.md) của chúng tôi để tìm giải pháp cho các vấn đề phổ biến.
**Gặp vấn đề?** Kiểm tra [Hướng dẫn khắc phục sự cố](TROUBLESHOOTING.md) của chúng tôi để tìm giải pháp cho các vấn đề phổ biến.
Nếu bạn bị kẹt hoặc có bất kỳ câu hỏi nào về xây dựng ứng dụng AI, hãy tham gia cùng những người học khác và các nhà phát triển giàu kinh nghiệm trong các cuộc thảo luận về MCP. Đây là một cộng đồng hỗ trợ, nơi những câu hỏi được chào đón và kiến thức được chia sẻ tự do.
Nếu bạn bị kẹt hoặc có bất kỳ câu hỏi nào về việc xây dựng ứng dụng AI. Hãy tham gia cùng những người học khác và các nhà phát triển có kinh nghiệm trong các cuộc thảo luận về MCP. Đây là một cộng đồng thân thiện, nơi mọi câu hỏi đều được chào đón và kiến thức được chia sẻ tự do.
Nếu bạn có phản hồi về sản phẩm hoặc gặp lỗi khi xây dựng, hãy truy cập:
Nếu bạn có phản hồi về sản phẩm hoặc lỗi trong quá trình xây dựng, hãy truy cập:
[](https://aka.ms/foundry/forum)
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc sự không chính xác. Tài liệu gốc bằng ngôn ngữ gốc nên được xem là nguồn tham khảo chính thức. Đối với thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này.
**Từ chối trách nhiệm**:
Tài liệu này đã được dịch sử dụng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi nỗ lực đảm bảo tính chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ nguyên bản của nó nên được coi là nguồn tham khảo chính xác nhất. Đối với thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm về bất kỳ hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.