{ "nbformat": 4, "nbformat_minor": 2, "metadata": { "colab": { "name": "lesson_2-R.ipynb", "provenance": [], "collapsed_sections": [], "toc_visible": true }, "kernelspec": { "name": "ir", "display_name": "R" }, "language_info": { "name": "R" }, "coopTranslator": { "original_hash": "f3c335f9940cfd76528b3ef918b9b342", "translation_date": "2025-12-19T16:33:34+00:00", "source_file": "2-Regression/2-Data/solution/R/lesson_2-R.ipynb", "language_code": "te" } }, "cells": [ { "cell_type": "markdown", "source": [ "# రిగ్రెషన్ మోడల్ నిర్మించండి: డేటాను సిద్ధం చేయండి మరియు విజువలైజ్ చేయండి\n", "\n", "## **పంప్కిన్స్ కోసం లీనియర్ రిగ్రెషన్ - పాఠం 2**\n", "#### పరిచయం\n", "\n", "ఇప్పుడు మీరు Tidymodels మరియు Tidyverse తో మెషీన్ లెర్నింగ్ మోడల్ నిర్మాణాన్ని ప్రారంభించడానికి అవసరమైన టూల్స్ తో సెట్ అయ్యారు, మీరు మీ డేటాను ప్రశ్నించడానికి సిద్ధంగా ఉన్నారు. మీరు డేటాతో పని చేస్తూ ML పరిష్కారాలను వర్తింపజేస్తున్నప్పుడు, మీ డేటాసెట్ యొక్క సామర్థ్యాలను సరిగ్గా అన్లాక్ చేయడానికి సరైన ప్రశ్నను అడగడం చాలా ముఖ్యం.\n", "\n", "ఈ పాఠంలో, మీరు నేర్చుకుంటారు:\n", "\n", "- మోడల్-నిర్మాణం కోసం మీ డేటాను ఎలా సిద్ధం చేయాలి.\n", "\n", "- డేటా విజువలైజేషన్ కోసం `ggplot2` ను ఎలా ఉపయోగించాలి.\n", "\n", "మీరు అడగవలసిన ప్రశ్న మీకు ఉపయోగపడే ML అల్గోరిథమ్స్ రకాన్ని నిర్ణయిస్తుంది. మరియు మీరు పొందే సమాధానం యొక్క నాణ్యత మీ డేటా స్వభావంపై బలంగా ఆధారపడి ఉంటుంది.\n", "\n", "ప్రాక్టికల్ వ్యాయామం ద్వారా దీన్ని చూద్దాం.\n", "\n", "\n", "

\n", " \n", "

కళాకృతి @allison_horst
\n" ], "metadata": { "id": "Pg5aexcOPqAZ" } }, { "cell_type": "markdown", "source": [ "## 1. పంప్కిన్స్ డేటాను దిగుమతి చేసుకోవడం మరియు టిడీవర్స్‌ను పిలవడం\n", "\n", "ఈ పాఠాన్ని స్లైస్ చేయడానికి మరియు డైస్ చేయడానికి క్రింది ప్యాకేజీలు అవసరం:\n", "\n", "- `tidyverse`: [tidyverse](https://www.tidyverse.org/) అనేది డేటా సైన్స్‌ను వేగవంతం చేయడానికి, సులభతరం చేయడానికి మరియు మరింత సరదాగా మార్చడానికి రూపొందించిన [R ప్యాకేజీల సేకరణ](https://www.tidyverse.org/packages)!\n", "\n", "మీరు వాటిని ఇన్‌స్టాల్ చేసుకోవచ్చు:\n", "\n", "`install.packages(c(\"tidyverse\"))`\n", "\n", "క్రింది స్క్రిప్ట్ ఈ మాడ్యూల్‌ను పూర్తి చేయడానికి అవసరమైన ప్యాకేజీలు మీ వద్ద ఉన్నాయా లేదా అని తనిఖీ చేస్తుంది మరియు కొన్నివి లేవంటే వాటిని మీ కోసం ఇన్‌స్టాల్ చేస్తుంది.\n" ], "metadata": { "id": "dc5WhyVdXAjR" } }, { "cell_type": "code", "execution_count": null, "source": [ "suppressWarnings(if(!require(\"pacman\")) install.packages(\"pacman\"))\n", "pacman::p_load(tidyverse)" ], "outputs": [], "metadata": { "id": "GqPYUZgfXOBt" } }, { "cell_type": "markdown", "source": [ "ఇప్పుడు, కొన్ని ప్యాకేజీలను ప్రారంభించి ఈ పాఠం కోసం అందించిన [డేటా](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv)ని లోడ్ చేద్దాం!\n" ], "metadata": { "id": "kvjDTPDSXRr2" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Load the core Tidyverse packages\n", "library(tidyverse)\n", "\n", "# Import the pumpkins data\n", "pumpkins <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/2-Regression/data/US-pumpkins.csv\")\n", "\n", "\n", "# Get a glimpse and dimensions of the data\n", "glimpse(pumpkins)\n", "\n", "\n", "# Print the first 50 rows of the data set\n", "pumpkins %>% \n", " slice_head(n =50)" ], "outputs": [], "metadata": { "id": "VMri-t2zXqgD" } }, { "cell_type": "markdown", "source": [ "A quick `glimpse()` వెంటనే చూపిస్తుంది कि ఖాళీలు మరియు స్ట్రింగ్స్ (`chr`) మరియు సంఖ్యా డేటా (`dbl`) మిశ్రమం ఉన్నాయి. `Date` టైపు క్యారెక్టర్ మరియు ఒక విచిత్రమైన కాలమ్ ఉంది `Package` అని, అక్కడ డేటా `sacks`, `bins` మరియు ఇతర విలువల మిశ్రమం. డేటా, వాస్తవానికి, కొంత గందరగోళం 😤.\n", "\n", "వాస్తవానికి, పూర్తిగా ఉపయోగించడానికి సిద్ధంగా ఉన్న డేటాసెట్‌ను బహుమతిగా పొందడం చాలా సాధారణం కాదు ML మోడల్‌ను బాక్స్ నుండి సృష్టించడానికి. కానీ చింతించకండి, ఈ పాఠంలో, మీరు మౌలిక R లైబ్రరీలను ఉపయోగించి ఒక రా డేటాసెట్‌ను ఎలా సిద్ధం చేయాలో నేర్చుకుంటారు 🧑‍🔧. మీరు డేటాను విజువలైజ్ చేయడానికి వివిధ సాంకేతికతలను కూడా నేర్చుకుంటారు.📈📊\n", "
\n", "\n", "> ఒక రిఫ్రెషర్: పైప్ ఆపరేటర్ (`%>%`) ఒక ఆబ్జెక్టును ఫంక్షన్ లేదా కాల్ ఎక్స్‌ప్రెషన్‌కు ముందుకు పంపడం ద్వారా లాజికల్ క్రమంలో ఆపరేషన్లను నిర్వహిస్తుంది. మీరు పైప్ ఆపరేటర్‌ను మీ కోడ్‌లో \"మరియు తరువాత\" అని చెప్పడం అని భావించవచ్చు.\n" ], "metadata": { "id": "REWcIv9yX29v" } }, { "cell_type": "markdown", "source": [ "## 2. లేని డేటా కోసం తనిఖీ చేయండి\n", "\n", "డేటా శాస్త్రవేత్తలు ఎదుర్కొనే అత్యంత సాధారణ సమస్యలలో ఒకటి అసంపూర్ణ లేదా లేని డేటా. R లో లేని లేదా తెలియని విలువలను ప్రత్యేక సెంటినెల్ విలువతో సూచిస్తారు: `NA` (అందుబాటులో లేదు).\n", "\n", "కాబట్టి డేటా ఫ్రేమ్ లో లేని విలువలు ఉన్నాయో లేదో ఎలా తెలుసుకోవాలి?\n", "
\n", "- ఒక సరళమైన విధానం base R ఫంక్షన్ `anyNA` ఉపయోగించడం, ఇది లాజికల్ ఆబ్జెక్టులు `TRUE` లేదా `FALSE` ను తిరిగి ఇస్తుంది.\n" ], "metadata": { "id": "Zxfb3AM5YbUe" } }, { "cell_type": "code", "execution_count": null, "source": [ "pumpkins %>% \n", " anyNA()" ], "outputs": [], "metadata": { "id": "G--DQutAYltj" } }, { "cell_type": "markdown", "source": [ "చాలా బాగుంది, కొంత డేటా లేమి ఉంది అనిపిస్తోంది! అది ప్రారంభించడానికి మంచి స్థలం.\n", "\n", "- మరో మార్గం `is.na()` ఫంక్షన్ ఉపయోగించడం, ఇది ఏ వ్యక్తిగత కాలమ్ అంశాలు లేమి ఉన్నాయో లాజికల్ `TRUE` తో సూచిస్తుంది.\n" ], "metadata": { "id": "mU-7-SB6YokF" } }, { "cell_type": "code", "execution_count": null, "source": [ "pumpkins %>% \n", " is.na() %>% \n", " head(n = 7)" ], "outputs": [], "metadata": { "id": "W-DxDOR4YxSW" } }, { "cell_type": "markdown", "source": [ "సరే, పని పూర్తయింది కానీ ఇలాంటి పెద్ద డేటా ఫ్రేమ్‌తో, ప్రతి వరుస మరియు కాలమ్‌ను వ్యక్తిగతంగా సమీక్షించడం అనర్థకంగా మరియు ప్రాయోగికంగా అసాధ్యం అవుతుంది😴.\n", "\n", "- మరింత సులభమైన విధానం ప్రతి కాలమ్ కోసం లేని విలువల మొత్తం లెక్కించడం అవుతుంది:\n" ], "metadata": { "id": "xUWxipKYY0o7" } }, { "cell_type": "code", "execution_count": null, "source": [ "pumpkins %>% \n", " is.na() %>% \n", " colSums()" ], "outputs": [], "metadata": { "id": "ZRBWV6P9ZArL" } }, { "cell_type": "markdown", "source": [ "ఇంకా బాగుంది! కొంత డేటా మిస్సవుంది, కానీ ఈ పనికి అది పెద్ద సమస్య కాకపోవచ్చు. మరింత విశ్లేషణ ఏమి తెస్తుందో చూద్దాం.\n", "\n", "> అద్భుతమైన ప్యాకేజీలు మరియు ఫంక్షన్లతో పాటు, R కి చాలా మంచి డాక్యుమెంటేషన్ ఉంది. ఉదాహరణకు, ఫంక్షన్ గురించి మరింత తెలుసుకోవడానికి `help(colSums)` లేదా `?colSums` ఉపయోగించండి.\n" ], "metadata": { "id": "9gv-crB6ZD1Y" } }, { "cell_type": "markdown", "source": [ "## 3. Dplyr: డేటా మానిప్యులేషన్ యొక్క వ్యాకరణం\n", "\n", "\n", "

\n", " \n", "

@allison_horst చేత కళాకృతి
\n", "\n", "\n", "\n" ], "metadata": { "id": "o4jLY5-VZO2C" } }, { "cell_type": "markdown", "source": [ "[`dplyr`](https://dplyr.tidyverse.org/), Tidyverseలో ఒక ప్యాకేజ్, డేటా మానిప్యులేషన్ యొక్క వ్యాకరణం, ఇది మీకు సాధారణ డేటా మానిప్యులేషన్ సవాళ్లను పరిష్కరించడంలో సహాయపడే సुसंगతమైన క్రియాపదాల సమితిని అందిస్తుంది. ఈ విభాగంలో, మనం dplyr యొక్క కొన్ని క్రియాపదాలను పరిశీలించబోతున్నాము!\n", "
\n" ], "metadata": { "id": "i5o33MQBZWWw" } }, { "cell_type": "markdown", "source": [ "#### dplyr::select()\n", "\n", "`select()` అనేది `dplyr` ప్యాకేజీలో ఉన్న ఒక ఫంక్షన్, ఇది మీరు నిలుపుకోవడానికి లేదా తప్పించుకోవడానికి కాలమ్స్‌ను ఎంచుకోవడంలో సహాయపడుతుంది.\n", "\n", "మీ డేటా ఫ్రేమ్‌తో పని చేయడం సులభం చేయడానికి, `select()` ఉపయోగించి దాని కొన్ని కాలమ్స్‌ను తొలగించండి, మీరు అవసరం ఉన్న కాలమ్స్ మాత్రమే నిలుపుకోండి.\n", "\n", "ఉదాహరణకు, ఈ వ్యాయామంలో, మా విశ్లేషణలో `Package`, `Low Price`, `High Price` మరియు `Date` కాలమ్స్ ఉంటాయి. ఈ కాలమ్స్‌ను ఎంచుకుందాం.\n" ], "metadata": { "id": "x3VGMAGBZiUr" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Select desired columns\n", "pumpkins <- pumpkins %>% \n", " select(Package, `Low Price`, `High Price`, Date)\n", "\n", "\n", "# Print data set\n", "pumpkins %>% \n", " slice_head(n = 5)" ], "outputs": [], "metadata": { "id": "F_FgxQnVZnM0" } }, { "cell_type": "markdown", "source": [ "#### dplyr::mutate()\n", "\n", "`mutate()` అనేది `dplyr` ప్యాకేజీలో ఒక ఫంక్షన్, ఇది మీరు ఉన్న కాలమ్స్‌ను ఉంచుతూ కొత్త కాలమ్స్‌ను సృష్టించడానికి లేదా మార్చడానికి సహాయపడుతుంది.\n", "\n", "mutate యొక్క సాధారణ నిర్మాణం:\n", "\n", "`data %>% mutate(new_column_name = what_it_contains)`\n", "\n", "`Date` కాలమ్‌ను ఉపయోగించి క్రింది ఆపరేషన్లను చేయడం ద్వారా `mutate` ను ప్రయత్నిద్దాం:\n", "\n", "1. తేదీలను (ప్రస్తుతం character రకం) నెల ఫార్మాట్‌కు మార్చండి (ఇవి US తేదీలు, కాబట్టి ఫార్మాట్ `MM/DD/YYYY`).\n", "\n", "2. తేదీల నుండి నెలను కొత్త కాలమ్‌గా తీసుకోండి.\n", "\n", "R లో, [lubridate](https://lubridate.tidyverse.org/) ప్యాకేజీ Date-time డేటాతో పని చేయడం సులభతరం చేస్తుంది. కాబట్టి, `dplyr::mutate()`, `lubridate::mdy()`, `lubridate::month()` ఉపయోగించి పై లక్ష్యాలను ఎలా సాధించాలో చూద్దాం. తరువాతి ఆపరేషన్లలో మళ్లీ అవసరం లేకపోవడంతో Date కాలమ్‌ను తీసివేయవచ్చు.\n" ], "metadata": { "id": "2KKo0Ed9Z1VB" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Load lubridate\n", "library(lubridate)\n", "\n", "pumpkins <- pumpkins %>% \n", " # Convert the Date column to a date object\n", " mutate(Date = mdy(Date)) %>% \n", " # Extract month from Date\n", " mutate(Month = month(Date)) %>% \n", " # Drop Date column\n", " select(-Date)\n", "\n", "# View the first few rows\n", "pumpkins %>% \n", " slice_head(n = 7)" ], "outputs": [], "metadata": { "id": "5joszIVSZ6xe" } }, { "cell_type": "markdown", "source": [ "వాహ్! 🤩\n", "\n", "తర్వాత, మనం కొత్త కాలమ్ `Price` ను సృష్టిద్దాం, ఇది ఒక పంప్కిన్ యొక్క సగటు ధరను సూచిస్తుంది. ఇప్పుడు, కొత్త Price కాలమ్‌ను నింపడానికి `Low Price` మరియు `High Price` కాలమ్‌ల సగటును తీసుకుందాం.\n", "
\n" ], "metadata": { "id": "nIgLjNMCZ-6Y" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Create a new column Price\n", "pumpkins <- pumpkins %>% \n", " mutate(Price = (`Low Price` + `High Price`)/2)\n", "\n", "# View the first few rows of the data\n", "pumpkins %>% \n", " slice_head(n = 5)" ], "outputs": [], "metadata": { "id": "Zo0BsqqtaJw2" } }, { "cell_type": "markdown", "source": [ "యీస్!💪\n", "\n", "\"కానీ వేచి ఉండండి!\", మీరు `View(pumpkins)` తో మొత్తం డేటా సెట్‌ను స్కిమ్ చేసిన తర్వాత చెప్పగలరు, \"ఇక్కడ ఏదో విచిత్రం ఉంది!\"🤔\n", "\n", "మీరు `Package` కాలమ్‌ను చూస్తే, పంప్కిన్లు అనేక వేర్వేరు ఆకృతుల్లో అమ్మబడుతున్నాయి. కొన్ని `1 1/9 బుషెల్` కొలతలలో, కొన్ని `1/2 బుషెల్` కొలతలలో, కొన్ని ఒక్కో పంప్కిన్‌కు, కొన్ని పౌండ్‌కు, మరియు కొన్ని విభిన్న వెడల్పుల పెద్ద బాక్స్‌లలో అమ్మబడుతున్నాయి.\n", "\n", "దీనిని నిర్ధారిద్దాం:\n" ], "metadata": { "id": "p77WZr-9aQAR" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Verify the distinct observations in Package column\n", "pumpkins %>% \n", " distinct(Package)" ], "outputs": [], "metadata": { "id": "XISGfh0IaUy6" } }, { "cell_type": "markdown", "source": [ "అద్భుతం!👏\n", "\n", "పంప్కిన్లు సతతంగా తూగడం చాలా కష్టం అనిపిస్తోంది, కాబట్టి `Package` కాలమ్‌లో *bushel* అనే స్ట్రింగ్ ఉన్న పంప్కిన్లను మాత్రమే ఎంచుకుని వాటిని కొత్త డేటా ఫ్రేమ్ `new_pumpkins` లో ఉంచుదాం.\n", "
\n" ], "metadata": { "id": "7sMjiVujaZxY" } }, { "cell_type": "markdown", "source": [ "#### dplyr::filter() మరియు stringr::str_detect()\n", "\n", "[`dplyr::filter()`](https://dplyr.tidyverse.org/reference/filter.html): మీ షరతులను తీరుస్తున్న **పంక్తులు** మాత్రమే కలిగిన డేటా ఉపసెట్‌ను సృష్టిస్తుంది, ఈ సందర్భంలో, `Package` కాలమ్‌లో *bushel* స్ట్రింగ్ ఉన్న పంప్కిన్లు.\n", "\n", "[stringr::str_detect()](https://stringr.tidyverse.org/reference/str_detect.html): స్ట్రింగ్‌లో ఒక నమూనా ఉన్నదో లేదో గుర్తిస్తుంది.\n", "\n", "[`stringr`](https://github.com/tidyverse/stringr) ప్యాకేజ్ సాధారణ స్ట్రింగ్ ఆపరేషన్ల కోసం సులభమైన ఫంక్షన్లను అందిస్తుంది.\n" ], "metadata": { "id": "L8Qfcs92ageF" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Retain only pumpkins with \"bushel\"\n", "new_pumpkins <- pumpkins %>% \n", " filter(str_detect(Package, \"bushel\"))\n", "\n", "# Get the dimensions of the new data\n", "dim(new_pumpkins)\n", "\n", "# View a few rows of the new data\n", "new_pumpkins %>% \n", " slice_head(n = 5)" ], "outputs": [], "metadata": { "id": "hy_SGYREampd" } }, { "cell_type": "markdown", "source": [ "మీరు చూడవచ్చు మనం సుమారు 415 వరుసల డేటా వరకు తగ్గించుకున్నాము, వాటిలో బషెల్ ద్వారా పంప్కిన్లు ఉన్నాయి.🤩\n", "
\n" ], "metadata": { "id": "VrDwF031avlR" } }, { "cell_type": "markdown", "source": [ "#### dplyr::case_when()\n", "\n", "**కానీ వేచి ఉండండి! ఇంకా ఒక విషయం చేయాల్సి ఉంది**\n", "\n", "మీరు గమనించారా, బషెల్ పరిమాణం ప్రతి వరుసకు మారుతుంది? మీరు ధరలను సాధారణీకరించాలి, అంటే 1 1/9 లేదా 1/2 బషెల్‌కు కాకుండా ప్రతి బషెల్‌కు ధర చూపించాలి. దీని కోసం కొంత గణితం చేయాల్సి ఉంది.\n", "\n", "మనం కొన్ని షరతుల ఆధారంగా Price కాలమ్‌ను *mutate* చేయడానికి [`case_when()`](https://dplyr.tidyverse.org/reference/case_when.html) ఫంక్షన్‌ను ఉపయోగిస్తాము. `case_when` అనేది అనేక `if_else()` స్టేట్మెంట్లను వెక్టరైజ్ చేయడానికి అనుమతిస్తుంది.\n" ], "metadata": { "id": "mLpw2jH4a0tx" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Convert the price if the Package contains fractional bushel values\n", "new_pumpkins <- new_pumpkins %>% \n", " mutate(Price = case_when(\n", " str_detect(Package, \"1 1/9\") ~ Price/(1 + 1/9),\n", " str_detect(Package, \"1/2\") ~ Price/(1/2),\n", " TRUE ~ Price))\n", "\n", "# View the first few rows of the data\n", "new_pumpkins %>% \n", " slice_head(n = 30)" ], "outputs": [], "metadata": { "id": "P68kLVQmbM6I" } }, { "cell_type": "markdown", "source": [ "ఇప్పుడు, మనం వారి బషెల్ కొలత ఆధారంగా యూనిట్ ధరను విశ్లేషించవచ్చు. అయితే, పంప్కిన్ బషెల్లపై ఈ మొత్తం అధ్యయనం మీ డేటా స్వభావాన్ని `అర్థం చేసుకోవడం` ఎంత `ముఖ్యమైనది` అనేది చూపిస్తుంది!\n", "\n", "> ✅ [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308) ప్రకారం, బషెల్ బరువు ఉత్పత్తి రకంపై ఆధారపడి ఉంటుంది, ఎందుకంటే ఇది పరిమాణ కొలత. \"ఉదాహరణకు, టమోటాల బషెల్ బరువు 56 పౌండ్లు ఉండాలి... ఆకులు మరియు ఆకుకూరలు తక్కువ బరువుతో ఎక్కువ స్థలం తీసుకుంటాయి, కాబట్టి పాలకూర బషెల్ బరువు కేవలం 20 పౌండ్లు.\" ఇది అంతా చాలా క్లిష్టమైనది! బషెల్-టు-పౌండ్ మార్పిడి చేయకుండా, బషెల్ ప్రకారం ధర నిర్ణయిద్దాం. అయితే, పంప్కిన్ బషెల్లపై ఈ మొత్తం అధ్యయనం మీ డేటా స్వభావాన్ని అర్థం చేసుకోవడం ఎంత ముఖ్యమైనదో చూపిస్తుంది!\n", ">\n", "> ✅ మీరు గమనించారా, సగం బషెల్ ద్వారా అమ్మే పంప్కిన్లు చాలా ఖరీదైనవి? మీరు ఎందుకు అనుకుంటున్నారా? సూచన: చిన్న పంప్కిన్లు పెద్దవాటికంటే చాలా ఎక్కువ ధర కలిగి ఉంటాయి, ఎందుకంటే ఒక పెద్ద గుండ్రటి పాయ్ పంప్కిన్ తీసుకునే ఉపయోగించని స్థలం కారణంగా, బషెల్‌కు చాలా ఎక్కువ చిన్న పంప్కిన్లు ఉంటాయి.\n", "
\n" ], "metadata": { "id": "pS2GNPagbSdb" } }, { "cell_type": "markdown", "source": [ "ఇప్పుడు చివరగా, సాహసోపేతంగా 💁‍♀️, మనం Month కాలమ్‌ను మొదటి స్థానానికి కూడా మార్చుకుందాం అంటే `Package` కాలమ్ `ముందు`.\n", "\n", "కాలమ్ స్థానాలను మార్చడానికి `dplyr::relocate()` ఉపయోగిస్తారు.\n" ], "metadata": { "id": "qql1SowfbdnP" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Create a new data frame new_pumpkins\n", "new_pumpkins <- new_pumpkins %>% \n", " relocate(Month, .before = Package)\n", "\n", "new_pumpkins %>% \n", " slice_head(n = 7)" ], "outputs": [], "metadata": { "id": "JJ1x6kw8bixF" } }, { "cell_type": "markdown", "source": [ "చాలా బాగుంది!👌 ఇప్పుడు మీకు ఒక శుభ్రమైన, క్రమబద్ధమైన డేటాసెట్ ఉంది, దానిపై మీరు మీ కొత్త రిగ్రెషన్ మోడల్‌ను నిర్మించవచ్చు!\n", "
\n" ], "metadata": { "id": "y8TJ0Za_bn5Y" } }, { "cell_type": "markdown", "source": [ "## 4. ggplot2 తో డేటా విజువలైజేషన్\n", "\n", "

\n", " \n", "

ఇన్ఫోగ్రాఫిక్ - దసాని మడిపల్లి
\n", "\n", "\n", "\n", "\n", "ఇలా ఒక *జ్ఞానవంతమైన* మాట ఉంది:\n", "\n", "> \"సాధారణ గ్రాఫ్ డేటా విశ్లేషకుడి మనసుకు ఇతర ఏ పరికరం కంటే ఎక్కువ సమాచారం తీసుకొచ్చింది.\" --- జాన్ టుకీ\n", "\n", "డేటా సైంటిస్ట్ పాత్రలో ఒక భాగం వారు పని చేస్తున్న డేటా యొక్క నాణ్యత మరియు స్వభావాన్ని ప్రదర్శించడం. దీని కోసం, వారు తరచుగా ఆసక్తికరమైన విజువలైజేషన్లు, లేదా ప్లాట్లు, గ్రాఫ్లు, మరియు చార్ట్లు సృష్టిస్తారు, డేటా యొక్క వివిధ కోణాలను చూపిస్తూ. ఈ విధంగా, వారు بصریంగా సంబంధాలు మరియు గ్యాప్స్ చూపగలుగుతారు, ఇవి లేకపోతే కనుగొనడం కష్టం.\n", "\n", "విజువలైజేషన్లు డేటాకు అత్యంత అనుకూలమైన మెషీన్ లెర్నింగ్ సాంకేతికతను నిర్ణయించడంలో కూడా సహాయపడతాయి. ఉదాహరణకు, ఒక స్కాటర్‌ప్లాట్ ఒక రేఖను అనుసరిస్తున్నట్లు కనిపిస్తే, ఆ డేటా లీనియర్ రిగ్రెషన్ వ్యాయామానికి మంచి అభ్యర్థిగా ఉంటుంది.\n", "\n", "R అనేక గ్రాఫ్ తయారీ వ్యవస్థలను అందిస్తుంది, కానీ [`ggplot2`](https://ggplot2.tidyverse.org/index.html) అత్యంత అందమైన మరియు బహుముఖమైన వాటిలో ఒకటి. `ggplot2` మీరు **స్వతంత్ర భాగాలను కలిపి** గ్రాఫ్‌లను రూపొందించడానికి అనుమతిస్తుంది.\n", "\n", "Price మరియు Month కాలమ్స్ కోసం ఒక సాదా స్కాటర్ ప్లాట్ తో ప్రారంభిద్దాం.\n", "\n", "కాబట్టి ఈ సందర్భంలో, మేము [`ggplot()`](https://ggplot2.tidyverse.org/reference/ggplot.html) తో ప్రారంభించి, ఒక డేటాసెట్ మరియు ఎస్తెటిక్స్ మ్యాపింగ్ ( [`aes()`](https://ggplot2.tidyverse.org/reference/aes.html) తో) అందించి, తరువాత స్కాటర్ ప్లాట్ల కోసం [`geom_point()`](https://ggplot2.tidyverse.org/reference/geom_point.html) వంటి లేయర్లు జోడిస్తాము.\n" ], "metadata": { "id": "mYSH6-EtbvNa" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Set a theme for the plots\n", "theme_set(theme_light())\n", "\n", "# Create a scatter plot\n", "p <- ggplot(data = new_pumpkins, aes(x = Price, y = Month))\n", "p + geom_point()" ], "outputs": [], "metadata": { "id": "g2YjnGeOcLo4" } }, { "cell_type": "markdown", "source": [ "ఇది ఉపయోగకరమైన ప్లాట్ కాదా 🤷? దీని గురించి ఏదైనా ఆశ్చర్యంగా ఉందా?\n", "\n", "ఇది ప్రత్యేకంగా ఉపయోగకరం కాదు ఎందుకంటే ఇది మీ డేటాను ఒక నిర్దిష్ట నెలలో పాయింట్ల విస్తరణగా మాత్రమే ప్రదర్శిస్తుంది.\n", "
\n" ], "metadata": { "id": "Ml7SDCLQcPvE" } }, { "cell_type": "markdown", "source": [ "### **మనం దీన్ని ఉపయోగకరంగా ఎలా చేస్తాము?**\n", "\n", "చార్ట్లు ఉపయోగకరమైన డేటాను ప్రదర్శించడానికి, మీరు సాధారణంగా డేటాను ఏదో విధంగా సమూహీకరించాలి. ఉదాహరణకు, మన కేసులో, ప్రతి నెలకు గుమ్మడికాయల సగటు ధరను కనుగొనడం మన డేటాలోని అంతర్గత నమూనాలపై మరింత అవగాహనను అందిస్తుంది. ఇది మాకు మరొక **dplyr** ఫ్లైబైకి దారితీస్తుంది:\n", "\n", "#### `dplyr::group_by() %>% summarize()`\n", "\n", "R లో సమూహీకృత సమ్మేళనం సులభంగా లెక్కించవచ్చు\n", "\n", "`dplyr::group_by() %>% summarize()`\n", "\n", "- `dplyr::group_by()` విశ్లేషణ యూనిట్‌ను పూర్తి డేటాసెట్ నుండి వ్యక్తిగత సమూహాలకు మార్చుతుంది, ఉదాహరణకు ప్రతి నెలకు.\n", "\n", "- `dplyr::summarize()` మీరు పేర్కొన్న సమ్మరీ గణాంకాల కోసం ప్రతి సమూహీకరణ వేరియబుల్‌కు ఒక కాలమ్ మరియు ఒక కొత్త డేటా ఫ్రేమ్‌ను సృష్టిస్తుంది.\n", "\n", "ఉదాహరణకు, మనం `dplyr::group_by() %>% summarize()` ను ఉపయోగించి గుమ్మడికాయలను **Month** కాలమ్ ఆధారంగా సమూహాలుగా విభజించి, ప్రతి నెలకు **సగటు ధర** కనుగొనవచ్చు.\n" ], "metadata": { "id": "jMakvJZIcVkh" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Find the average price of pumpkins per month\r\n", "new_pumpkins %>%\r\n", " group_by(Month) %>% \r\n", " summarise(mean_price = mean(Price))" ], "outputs": [], "metadata": { "id": "6kVSUa2Bcilf" } }, { "cell_type": "markdown", "source": [ "సంక్షిప్తంగా!✨\n", "\n", "నెలల వంటి వర్గీకరణ లక్షణాలను బార్ ప్లాట్ 📊 ఉపయోగించి మెరుగ్గా ప్రదర్శించవచ్చు. బార్ చార్ట్స్ కోసం బాధ్యత వహించే లేయర్లు `geom_bar()` మరియు `geom_col()` ఉన్నాయి. మరింత తెలుసుకోవడానికి `?geom_bar` ను చూడండి.\n", "\n", "ఒకటి తయారు చేద్దాం!\n" ], "metadata": { "id": "Kds48GUBcj3W" } }, { "cell_type": "code", "execution_count": null, "source": [ "# Find the average price of pumpkins per month then plot a bar chart\r\n", "new_pumpkins %>%\r\n", " group_by(Month) %>% \r\n", " summarise(mean_price = mean(Price)) %>% \r\n", " ggplot(aes(x = Month, y = mean_price)) +\r\n", " geom_col(fill = \"midnightblue\", alpha = 0.7) +\r\n", " ylab(\"Pumpkin Price\")" ], "outputs": [], "metadata": { "id": "VNbU1S3BcrxO" } }, { "cell_type": "markdown", "source": [ "🤩🤩 ఇది మరింత ఉపయోగకరమైన డేటా విజువలైజేషన్! ఇది సప్టెంబర్ మరియు అక్టోబర్ నెలల్లో గుమ్మడికాయల ధర అత్యధికంగా ఉంటుందని సూచిస్తున్నట్లు కనిపిస్తోంది. ఇది మీ అంచనాకు సరిపోతుందా? ఎందుకు లేదా ఎందుకు కాదు?\n", "\n", "రెండవ పాఠం పూర్తి చేసినందుకు అభినందనలు 👏! మీరు మీ డేటాను మోడల్ నిర్మాణానికి సిద్ధం చేసారు, ఆపై విజువలైజేషన్ల ద్వారా మరిన్ని అవగాహనలను కనుగొన్నారు!\n" ], "metadata": { "id": "zDm0VOzzcuzR" } }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n\n\n**అస్పష్టత**: \nఈ పత్రాన్ని AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నించినప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో పొరపాట్లు లేదా తప్పిదాలు ఉండవచ్చు. అసలు పత్రం దాని స్వదేశీ భాషలోనే అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారానికి, ప్రొఫెషనల్ మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడకంలో ఏర్పడిన ఏవైనా అపార్థాలు లేదా తప్పుదారుల కోసం మేము బాధ్యత వహించము.\n\n" ] } ] }