You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
726 lines
49 KiB
726 lines
49 KiB
{
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2,
|
|
"metadata": {
|
|
"colab": {
|
|
"name": "lesson_10-R.ipynb",
|
|
"provenance": [],
|
|
"collapsed_sections": []
|
|
},
|
|
"kernelspec": {
|
|
"name": "ir",
|
|
"display_name": "R"
|
|
},
|
|
"language_info": {
|
|
"name": "R"
|
|
},
|
|
"coopTranslator": {
|
|
"original_hash": "2621e24705e8100893c9bf84e0fc8aef",
|
|
"translation_date": "2025-10-11T12:31:21+00:00",
|
|
"source_file": "4-Classification/1-Introduction/solution/R/lesson_10-R.ipynb",
|
|
"language_code": "ta"
|
|
}
|
|
},
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# சுவையான ஆசிய மற்றும் இந்திய உணவுகள்: வகைப்படுத்தும் மாடல் உருவாக்கவும்\n"
|
|
],
|
|
"metadata": {
|
|
"id": "ItETB4tSFprR"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## வகைப்பாட்டிற்கான அறிமுகம்: உங்கள் தரவை சுத்தமாக்கி, தயாரித்து, காட்சிப்படுத்துங்கள்\n",
|
|
"\n",
|
|
"இந்த நான்கு பாடங்களில், பாரம்பரிய இயந்திரக் கற்றலின் அடிப்படை அம்சமான *வகைப்பாட்டை* நீங்கள் ஆராய்வீர்கள். ஆசியா மற்றும் இந்தியாவின் அனைத்து அற்புதமான சமையல்களையும் பற்றிய தரவுத்தொகுப்புடன் பல்வேறு வகைப்பாட்டு அல்காரிதங்களைப் பயன்படுத்தி நாம் பயணிக்கப் போகிறோம். உங்களுக்குப் பசிக்கிறது என்று நம்புகிறேன்!\n",
|
|
"\n",
|
|
"<p >\n",
|
|
" <img src=\"../../../../../../translated_images/ta/pinch.1b035ec9ba7e0d40.webp\"\n",
|
|
" width=\"600\"/>\n",
|
|
" <figcaption>இந்த பாடங்களில் பான்-ஆசிய சமையல்களை கொண்டாடுங்கள்! படம்: ஜென் லூப்பர்</figcaption>\n",
|
|
"\n",
|
|
"வகைப்பாடு என்பது [மேற்பார்வை கற்றல்](https://wikipedia.org/wiki/Supervised_learning) என்ற ஒரு வடிவமாகும், இது மறுமொழி நுட்பங்களுடன் பல ஒற்றுமைகளை கொண்டுள்ளது. வகைப்பாட்டில், ஒரு பொருள் எந்த `வகைக்கு` உட்பட்டது என்பதை கணிக்க ஒரு மாதிரியை நீங்கள் பயிற்சி செய்கிறீர்கள். இயந்திரக் கற்றல் என்பது தரவுத்தொகுப்புகளைப் பயன்படுத்தி மதிப்புகள் அல்லது பெயர்களை கணிக்கப் பற்றியது என்றால், வகைப்பாடு பொதுவாக இரண்டு குழுக்களாகப் பிரிக்கப்படுகிறது: *இரட்டை வகைப்பாடு* மற்றும் *பலவகை வகைப்பாடு*.\n",
|
|
"\n",
|
|
"நினைவில் கொள்ளுங்கள்:\n",
|
|
"\n",
|
|
"- **நேரியல் மறுமொழி** உங்களுக்கு மாறிலிகள் மற்றும் புதிய தரவுப் புள்ளி அந்த வரிக்கு தொடர்புடைய இடத்தில் எங்கு வரும் என்பதைத் துல்லியமாக கணிக்க உதவியது. உதாரணமாக, *செப்டம்பர் மற்றும் டிசம்பர் மாதங்களில் பூசணிக்காய் விலை என்ன இருக்கும்* என்பதை நீங்கள் கணிக்க முடியும்.\n",
|
|
"\n",
|
|
"- **லாஜிஸ்டிக் மறுமொழி** உங்களுக்கு \"இரட்டை வகைகளை\" கண்டறிய உதவியது: இந்த விலை அளவில், *இந்த பூசணிக்காய் ஆரஞ்சு நிறமா அல்லது ஆரஞ்சு நிறமல்லாததா*?\n",
|
|
"\n",
|
|
"வகைப்பாடு பல்வேறு அல்காரிதங்களைப் பயன்படுத்தி ஒரு தரவுப் புள்ளியின் லேபிள் அல்லது வகையைத் தீர்மானிக்கிறது. இந்த சமையல் தரவுடன் வேலை செய்து, ஒரு குழுவிலுள்ள பொருட்களைப் பார்த்து, அவை எந்த சமையல் நாட்டைச் சேர்ந்தவை என்பதை நாம் தீர்மானிக்க முடியும் என்பதைப் பார்ப்போம்.\n",
|
|
"\n",
|
|
"### [**பாடத்துக்கு முந்தைய வினாடி வினா**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/19/)\n",
|
|
"\n",
|
|
"### **அறிமுகம்**\n",
|
|
"\n",
|
|
"வகைப்பாடு என்பது இயந்திரக் கற்றல் ஆராய்ச்சியாளரும் தரவியல் விஞ்ஞானியும் செய்யும் அடிப்படை செயல்பாடுகளில் ஒன்றாகும். ஒரு எளிய இரட்டை மதிப்பு வகைப்பாட்டிலிருந்து (\"இந்த மின்னஞ்சல் ஸ்பாம் தானா அல்லது இல்லை?\"), கணினி காட்சி பயன்படுத்தி சிக்கலான பட வகைப்பாடு மற்றும் பிரிவுகள் வரை, தரவை வகைகளில் பிரித்து அதில் கேள்விகளை கேட்பது எப்போதும் பயனுள்ளதாக இருக்கும்.\n",
|
|
"\n",
|
|
"இந்த செயல்முறையை ஒரு விஞ்ஞான ரீதியாக கூறுவதானால், உங்கள் வகைப்பாட்டு முறை ஒரு கணிப்புப் மாதிரியை உருவாக்குகிறது, இது உள்ளீட்டு மாறிலிகளுக்கும் வெளியீட்டு மாறிலிகளுக்கும் இடையிலான தொடர்பை வரைபடமாக்க உதவுகிறது.\n",
|
|
"\n",
|
|
"<p >\n",
|
|
" <img src=\"../../../../../../translated_images/ta/binary-multiclass.b56d0c86c81105a6.webp\"\n",
|
|
" width=\"600\"/>\n",
|
|
" <figcaption>வகைப்பாட்டு அல்காரிதங்களுக்கு கையாள இரட்டை மற்றும் பலவகை பிரச்சினைகள். இன்ஃபோகிராபிக்: ஜென் லூப்பர்</figcaption>\n",
|
|
"\n",
|
|
"தரவை சுத்தமாக்கி, காட்சிப்படுத்தி, எம்.எல் பணிகளுக்காக தயாரிக்க தொடங்குவதற்கு முன், தரவை வகைப்படுத்த இயந்திரக் கற்றலைப் பயன்படுத்தும் பல்வேறு வழிகளைப் பற்றி கொஞ்சம் கற்றுக்கொள்வோம்.\n",
|
|
"\n",
|
|
"[புள்ளியியல்](https://wikipedia.org/wiki/Statistical_classification) இலிருந்து பெறப்பட்ட வகைப்பாடு, பாரம்பரிய இயந்திரக் கற்றலின் மூலம் `smoker`, `weight`, மற்றும் `age` போன்ற அம்சங்களைப் பயன்படுத்தி *X நோயை உருவாக்கும் சாத்தியக்கூறை* தீர்மானிக்கிறது. நீங்கள் முன்பு செய்த மறுமொழி பயிற்சிகளுக்கு ஒத்த மேற்பார்வை கற்றல் நுட்பமாக, உங்கள் தரவுகள் லேபிள் செய்யப்பட்டுள்ளன, மேலும் எம்.எல் அல்காரிதங்கள் அந்த லேபிள்களைப் பயன்படுத்தி ஒரு தரவுத்தொகுப்பின் வகைகள் (அல்லது 'அம்சங்கள்') மற்றும் அவற்றை ஒரு குழு அல்லது முடிவுக்கு ஒதுக்கி வகைப்படுத்தி கணிக்கின்றன.\n",
|
|
"\n",
|
|
"✅ ஒரு சமையல் தரவுத்தொகுப்பைப் பற்றி கற்பனை செய்ய ஒரு நிமிடம் எடுத்துக்கொள்ளுங்கள். ஒரு பலவகை மாதிரி என்ன பதிலளிக்க முடியும்? ஒரு இரட்டை மாதிரி என்ன பதிலளிக்க முடியும்? கொடுக்கப்பட்ட சமையல் ஒரு வகை மித்ரி பயன்படுத்த வாய்ப்பு உள்ளதா என்பதை நீங்கள் தீர்மானிக்க விரும்பினால் என்ன செய்வீர்கள்? அல்லது, ஒரு பையில் நட்சத்திர சோம்பு, ஆட்டிச்சோக்கை, பூக்கோசு மற்றும் முள்ளங்கி ஆகியவற்றுடன் ஒரு இந்திய உணவை உருவாக்க முடியுமா என்பதைப் பார்க்க விரும்பினால் என்ன செய்வீர்கள்?\n",
|
|
"\n",
|
|
"### **வணக்கம் 'வகைப்பாளர்'**\n",
|
|
"\n",
|
|
"இந்த சமையல் தரவுத்தொகுப்பில் நாம் கேட்க விரும்பும் கேள்வி உண்மையில் ஒரு **பலவகை கேள்வி**, ஏனெனில் நமக்கு பல சாத்தியமான தேசிய சமையல்கள் உள்ளன. ஒரு தொகுதி பொருட்களைப் பார்த்து, இந்த பல வகைகளில் எதற்கு தரவுகள் பொருந்தும்?\n",
|
|
"\n",
|
|
"Tidymodels தரவை வகைப்படுத்த பல்வேறு அல்காரிதங்களை வழங்குகிறது, நீங்கள் தீர்க்க விரும்பும் பிரச்சினையின் வகையைப் பொறுத்து. அடுத்த இரண்டு பாடங்களில், இந்த அல்காரிதங்களில் பலவற்றைப் பற்றி நீங்கள் கற்றுக்கொள்வீர்கள்.\n",
|
|
"\n",
|
|
"#### **முன்னேற்பாடுகள்**\n",
|
|
"\n",
|
|
"இந்த பாடத்திற்காக, நாங்கள் தரவை சுத்தமாக்க, தயாரிக்க மற்றும் காட்சிப்படுத்த பின்வரும் தொகுப்புகளை தேவைப்படும்:\n",
|
|
"\n",
|
|
"- `tidyverse`: [tidyverse](https://www.tidyverse.org/) என்பது தரவியல் அறிவியலை வேகமாகவும், எளிதாகவும், மேலும் மகிழ்ச்சிகரமாகவும் மாற்றுவதற்காக வடிவமைக்கப்பட்ட [R தொகுப்புகளின் தொகுப்பு](https://www.tidyverse.org/packages) ஆகும்!\n",
|
|
"\n",
|
|
"- `tidymodels`: [tidymodels](https://www.tidymodels.org/) கட்டமைப்பு என்பது மாதிரிகள் மற்றும் இயந்திரக் கற்றலுக்கான [தொகுப்புகளின் தொகுப்பு](https://www.tidymodels.org/packages/) ஆகும்.\n",
|
|
"\n",
|
|
"- `DataExplorer`: [DataExplorer தொகுப்பு](https://cran.r-project.org/web/packages/DataExplorer/vignettes/dataexplorer-intro.html) EDA செயல்முறையையும் அறிக்கை உருவாக்கத்தையும் எளிமைப்படுத்தவும் தானியங்கி செய்யவும் உருவாக்கப்பட்டது.\n",
|
|
"\n",
|
|
"- `themis`: [themis தொகுப்பு](https://themis.tidymodels.org/) சமநிலையற்ற தரவுகளை கையாள கூடுதல் செய்முறை படிகளை வழங்குகிறது.\n",
|
|
"\n",
|
|
"இவற்றை கீழே உள்ள கட்டளையைப் பயன்படுத்தி நிறுவலாம்:\n",
|
|
"\n",
|
|
"`install.packages(c(\"tidyverse\", \"tidymodels\", \"DataExplorer\", \"here\"))`\n",
|
|
"\n",
|
|
"மாற்றாக, கீழே உள்ள ஸ்கிரிப்ட் இந்த தொகுப்புகளை நீங்கள் ஏற்கனவே நிறுவியுள்ளீர்களா என்பதைச் சரிபார்க்கிறது, அவை இல்லாவிட்டால் அவற்றை உங்களுக்காக நிறுவுகிறது.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "ri5bQxZ-Fz_0"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"suppressWarnings(if (!require(\"pacman\"))install.packages(\"pacman\"))\r\n",
|
|
"\r\n",
|
|
"pacman::p_load(tidyverse, tidymodels, DataExplorer, themis, here)"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "KIPxa4elGAPI"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"நாம் பின்னர் இந்த அற்புதமான தொகுப்புகளை ஏற்றுவோம் மற்றும் அவற்றை நமது தற்போதைய R அமர்வில் பயன்படுத்தக்கூடியதாக மாற்றுவோம். (இது வெறும் விளக்கத்திற்காக, `pacman::p_load()` ஏற்கனவே அதை உங்களுக்காக செய்துவிட்டது)\n"
|
|
],
|
|
"metadata": {
|
|
"id": "YkKAxOJvGD4C"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## பயிற்சி - உங்கள் தரவுகளை சுத்தமாகவும் சமநிலையாக்கவும்\n",
|
|
"\n",
|
|
"இந்த திட்டத்தை தொடங்குவதற்கு முன் செய்ய வேண்டிய முதல் பணியாக, உங்கள் தரவுகளை சுத்தமாகவும் **சமநிலையாக்கவும்** செய்து சிறந்த முடிவுகளை பெற வேண்டும்.\n",
|
|
"\n",
|
|
"தரவுகளை சந்திக்கலாம்!🕵️\n"
|
|
],
|
|
"metadata": {
|
|
"id": "PFkQDlk0GN5O"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Import data\r\n",
|
|
"df <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/4-Classification/data/cuisines.csv\")\r\n",
|
|
"\r\n",
|
|
"# View the first 5 rows\r\n",
|
|
"df %>% \r\n",
|
|
" slice_head(n = 5)\r\n"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "Qccw7okxGT0S"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"சுவாரஸ்யமாக உள்ளது! இதைப் பார்த்தால், முதல் நெடுவரிசை ஒரு வகையான `id` நெடுவரிசையாக உள்ளது. தரவின் குறித்த மேலும் சில தகவல்களைப் பெறலாம்.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "XrWnlgSrGVmR"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Basic information about the data\r\n",
|
|
"df %>%\r\n",
|
|
" introduce()\r\n",
|
|
"\r\n",
|
|
"# Visualize basic information above\r\n",
|
|
"df %>% \r\n",
|
|
" plot_intro(ggtheme = theme_light())"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "4UcGmxRxGieA"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"வெளியீட்டிலிருந்து, நமக்கு `2448` வரிசைகள் மற்றும் `385` நெடுவரிசைகள் மற்றும் `0` பிழையான மதிப்புகள் உள்ளன என்பதை உடனடியாக காணலாம். மேலும், *cuisine* என்ற 1 தனித்த நெடுவரிசையும் உள்ளது.\n",
|
|
"\n",
|
|
"## பயிற்சி - சமையல் வகைகள் பற்றி அறிதல்\n",
|
|
"\n",
|
|
"இப்போது வேலை மேலும் சுவாரஸ்யமாக மாறுகிறது. ஒவ்வொரு சமையல் வகையின்படி தரவின் பகிர்வை கண்டறிவோம்.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "AaPubl__GmH5"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Count observations per cuisine\r\n",
|
|
"df %>% \r\n",
|
|
" count(cuisine) %>% \r\n",
|
|
" arrange(n)\r\n",
|
|
"\r\n",
|
|
"# Plot the distribution\r\n",
|
|
"theme_set(theme_light())\r\n",
|
|
"df %>% \r\n",
|
|
" count(cuisine) %>% \r\n",
|
|
" ggplot(mapping = aes(x = n, y = reorder(cuisine, -n))) +\r\n",
|
|
" geom_col(fill = \"midnightblue\", alpha = 0.7) +\r\n",
|
|
" ylab(\"cuisine\")"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "FRsBVy5eGrrv"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"உணவுப் பாணிகள் எண்ணிக்கை வரையறுக்கப்பட்டதாக இருக்கலாம், ஆனால் தரவின் பகிர்வு சமமாக இல்லை. அதை சரிசெய்ய நீங்கள் முடியும்! அதற்கு முன், கொஞ்சம் மேலும் ஆராயுங்கள்.\n",
|
|
"\n",
|
|
"அடுத்ததாக, ஒவ்வொரு உணவுப் பாணியையும் தனித்தனியான tibble-களில் ஒதுக்கி, ஒவ்வொரு உணவுப் பாணிக்கான தரவின் அளவு (வரிசைகள், நெடுவரிசைகள்) எவ்வளவு உள்ளது என்பதை கண்டறியலாம்.\n",
|
|
"\n",
|
|
"> ஒரு [tibble](https://tibble.tidyverse.org/) என்பது நவீன தரவுப் பட்டியல் ஆகும்.\n",
|
|
"\n",
|
|
"<p >\n",
|
|
" <img src=\"../../../../../../translated_images/ta/dplyr_filter.b480b264b03439ff.webp\"\n",
|
|
" width=\"600\"/>\n",
|
|
" <figcaption>@allison_horst அவர்களின் படைப்புகள்</figcaption>\n"
|
|
],
|
|
"metadata": {
|
|
"id": "vVvyDb1kG2in"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Create individual tibble for the cuisines\r\n",
|
|
"thai_df <- df %>% \r\n",
|
|
" filter(cuisine == \"thai\")\r\n",
|
|
"japanese_df <- df %>% \r\n",
|
|
" filter(cuisine == \"japanese\")\r\n",
|
|
"chinese_df <- df %>% \r\n",
|
|
" filter(cuisine == \"chinese\")\r\n",
|
|
"indian_df <- df %>% \r\n",
|
|
" filter(cuisine == \"indian\")\r\n",
|
|
"korean_df <- df %>% \r\n",
|
|
" filter(cuisine == \"korean\")\r\n",
|
|
"\r\n",
|
|
"\r\n",
|
|
"# Find out how much data is available per cuisine\r\n",
|
|
"cat(\" thai df:\", dim(thai_df), \"\\n\",\r\n",
|
|
" \"japanese df:\", dim(japanese_df), \"\\n\",\r\n",
|
|
" \"chinese_df:\", dim(chinese_df), \"\\n\",\r\n",
|
|
" \"indian_df:\", dim(indian_df), \"\\n\",\r\n",
|
|
" \"korean_df:\", dim(korean_df))"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "0TvXUxD3G8Bk"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"சிறந்தது!😋\n",
|
|
"\n",
|
|
"## **பயிற்சி - dplyr மூலம் சமையல் வகை அடிப்படையில் முக்கிய பொருட்களை கண்டறிதல்**\n",
|
|
"\n",
|
|
"இப்போது நீங்கள் தரவுகளை ஆழமாக ஆராய்ந்து, ஒவ்வொரு சமையல் வகைக்கும் பொதுவான பொருட்கள் என்ன என்பதை அறியலாம். சமையல் வகைகளுக்கு இடையே குழப்பத்தை ஏற்படுத்தும் மீண்டும் மீண்டும் வரும் தரவுகளை நீக்க வேண்டும், எனவே இந்த பிரச்சினையைப் பற்றி கற்றுக்கொள்வோம்.\n",
|
|
"\n",
|
|
"R-ல் ஒரு `create_ingredient()` என்ற செயல்பாட்டை உருவாக்கவும், இது ஒரு பொருள் தரவுத்தொகுப்பை திருப்பி அளிக்கும். இந்த செயல்பாடு உதவாத ஒரு நெடுவரிசையை நீக்கி, பொருட்களை அவற்றின் எண்ணிக்கையின்படி வரிசைப்படுத்தும்.\n",
|
|
"\n",
|
|
"R-ல் ஒரு செயல்பாட்டின் அடிப்படை அமைப்பு:\n",
|
|
"\n",
|
|
"`myFunction <- function(arglist){`\n",
|
|
"\n",
|
|
"**`...`**\n",
|
|
"\n",
|
|
"**`return`**`(value)`\n",
|
|
"\n",
|
|
"`}`\n",
|
|
"\n",
|
|
"R செயல்பாடுகள் பற்றிய சீர்மையான அறிமுகத்தை [இங்கே](https://skirmer.github.io/presentations/functions_with_r.html#1) காணலாம்.\n",
|
|
"\n",
|
|
"நாம் நேரடியாக செயல்படுவோம்! [dplyr verbs](https://dplyr.tidyverse.org/) ஐப் பயன்படுத்துவோம், இது முந்தைய பாடங்களில் நாம் கற்றுக்கொண்டது. மீளாய்வாக:\n",
|
|
"\n",
|
|
"- `dplyr::select()`: எந்த **நெடுவரிசைகளை** வைத்திருக்க வேண்டும் அல்லது நீக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்க உதவுகிறது.\n",
|
|
"\n",
|
|
"- `dplyr::pivot_longer()`: தரவுகளை \"நீளமாக்க\" உதவுகிறது, வரிசைகளின் எண்ணிக்கையை அதிகரித்து, நெடுவரிசைகளின் எண்ணிக்கையை குறைக்கிறது.\n",
|
|
"\n",
|
|
"- `dplyr::group_by()` மற்றும் `dplyr::summarise()`: பல்வேறு குழுக்களுக்கான சுருக்க புள்ளிவிவரங்களை கண்டறிந்து, அவற்றை அழகான அட்டவணையில் வைக்க உதவுகிறது.\n",
|
|
"\n",
|
|
"- `dplyr::filter()`: உங்கள் நிபந்தனைகளை பூர்த்தி செய்யும் வரிசைகளை மட்டுமே கொண்ட தரவுத்தொகுப்பை உருவாக்குகிறது.\n",
|
|
"\n",
|
|
"- `dplyr::mutate()`: புதிய நெடுவரிசைகளை உருவாக்க அல்லது மாற்ற உதவுகிறது.\n",
|
|
"\n",
|
|
"Allison Horst உருவாக்கிய [*கலை*-நிறைந்த learnr டுடோரியல்](https://allisonhorst.shinyapps.io/dplyr-learnr/#section-welcome) ஐப் பாருங்கள், இது dplyr *(Tidyverse இன் ஒரு பகுதி)* இல் சில பயனுள்ள தரவுத் திருத்த செயல்பாடுகளை அறிமுகப்படுத்துகிறது.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "K3RF5bSCHC76"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Creates a functions that returns the top ingredients by class\r\n",
|
|
"\r\n",
|
|
"create_ingredient <- function(df){\r\n",
|
|
" \r\n",
|
|
" # Drop the id column which is the first colum\r\n",
|
|
" ingredient_df = df %>% select(-1) %>% \r\n",
|
|
" # Transpose data to a long format\r\n",
|
|
" pivot_longer(!cuisine, names_to = \"ingredients\", values_to = \"count\") %>% \r\n",
|
|
" # Find the top most ingredients for a particular cuisine\r\n",
|
|
" group_by(ingredients) %>% \r\n",
|
|
" summarise(n_instances = sum(count)) %>% \r\n",
|
|
" filter(n_instances != 0) %>% \r\n",
|
|
" # Arrange by descending order\r\n",
|
|
" arrange(desc(n_instances)) %>% \r\n",
|
|
" mutate(ingredients = factor(ingredients) %>% fct_inorder())\r\n",
|
|
" \r\n",
|
|
" \r\n",
|
|
" return(ingredient_df)\r\n",
|
|
"} # End of function"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "uB_0JR82HTPa"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"இப்போது நாம் இந்த செயல்பாட்டைப் பயன்படுத்தி சமையல் வகை அடிப்படையில் மிகவும் பிரபலமான முதல் பத்து பொருட்களை அறியலாம். `thai_df` உடன் இதைப் பயன்படுத்திப் பார்ப்போம்.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "h9794WF8HWmc"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Call create_ingredient and display popular ingredients\r\n",
|
|
"thai_ingredient_df <- create_ingredient(df = thai_df)\r\n",
|
|
"\r\n",
|
|
"thai_ingredient_df %>% \r\n",
|
|
" slice_head(n = 10)"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "agQ-1HrcHaEA"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"முந்தைய பகுதியில், நாங்கள் `geom_col()` பயன்படுத்தினோம், `geom_bar` ஐப் பயன்படுத்தி, பட்டி வரைபடங்களை உருவாக்குவது எப்படி என்பதை பார்ப்போம். மேலும் படிக்க `?geom_bar` ஐப் பயன்படுத்தவும்.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "kHu9ffGjHdcX"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Make a bar chart for popular thai cuisines\r\n",
|
|
"thai_ingredient_df %>% \r\n",
|
|
" slice_head(n = 10) %>% \r\n",
|
|
" ggplot(aes(x = n_instances, y = ingredients)) +\r\n",
|
|
" geom_bar(stat = \"identity\", width = 0.5, fill = \"steelblue\") +\r\n",
|
|
" xlab(\"\") + ylab(\"\")"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "fb3Bx_3DHj6e"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"ஜப்பானிய தரவுகளுக்காக இதையே செய்யலாம்\n"
|
|
],
|
|
"metadata": {
|
|
"id": "RHP_xgdkHnvM"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Get popular ingredients for Japanese cuisines and make bar chart\r\n",
|
|
"create_ingredient(df = japanese_df) %>% \r\n",
|
|
" slice_head(n = 10) %>%\r\n",
|
|
" ggplot(aes(x = n_instances, y = ingredients)) +\r\n",
|
|
" geom_bar(stat = \"identity\", width = 0.5, fill = \"darkorange\", alpha = 0.8) +\r\n",
|
|
" xlab(\"\") + ylab(\"\")\r\n"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "019v8F0XHrRU"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"Please provide the markdown file content that you would like me to translate into Tamil.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "iIGM7vO8Hu3v"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Get popular ingredients for Chinese cuisines and make bar chart\r\n",
|
|
"create_ingredient(df = chinese_df) %>% \r\n",
|
|
" slice_head(n = 10) %>%\r\n",
|
|
" ggplot(aes(x = n_instances, y = ingredients)) +\r\n",
|
|
" geom_bar(stat = \"identity\", width = 0.5, fill = \"cyan4\", alpha = 0.8) +\r\n",
|
|
" xlab(\"\") + ylab(\"\")"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "lHd9_gd2HyzU"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"இந்திய உணவுகளைப் பார்ப்போம் 🌶️.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "ir8qyQbNH1c7"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Get popular ingredients for Indian cuisines and make bar chart\r\n",
|
|
"create_ingredient(df = indian_df) %>% \r\n",
|
|
" slice_head(n = 10) %>%\r\n",
|
|
" ggplot(aes(x = n_instances, y = ingredients)) +\r\n",
|
|
" geom_bar(stat = \"identity\", width = 0.5, fill = \"#041E42FF\", alpha = 0.8) +\r\n",
|
|
" xlab(\"\") + ylab(\"\")"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "ApukQtKjH5FO"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"கடைசியாக, கொரிய பொருட்களை வரைபடமாக்குங்கள்.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "qv30cwY1H-FM"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Get popular ingredients for Korean cuisines and make bar chart\r\n",
|
|
"create_ingredient(df = korean_df) %>% \r\n",
|
|
" slice_head(n = 10) %>%\r\n",
|
|
" ggplot(aes(x = n_instances, y = ingredients)) +\r\n",
|
|
" geom_bar(stat = \"identity\", width = 0.5, fill = \"#852419FF\", alpha = 0.8) +\r\n",
|
|
" xlab(\"\") + ylab(\"\")"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "lumgk9cHIBie"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"தரவு காட்சிப்படுத்தல்களிலிருந்து, தனித்துவமான சமையல்களுக்கிடையே குழப்பத்தை ஏற்படுத்தும் பொதுவான பொருட்களை இப்போது `dplyr::select()` பயன்படுத்தி நீக்கலாம்.\n",
|
|
"\n",
|
|
"அனைவருக்கும் அரிசி, பூண்டு மற்றும் இஞ்சி பிடிக்கும்!\n"
|
|
],
|
|
"metadata": {
|
|
"id": "iO4veMXuIEta"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Drop id column, rice, garlic and ginger from our original data set\r\n",
|
|
"df_select <- df %>% \r\n",
|
|
" select(-c(1, rice, garlic, ginger))\r\n",
|
|
"\r\n",
|
|
"# Display new data set\r\n",
|
|
"df_select %>% \r\n",
|
|
" slice_head(n = 5)"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "iHJPiG6rIUcK"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## தரவுகளை முன்கூட்டியே செயலாக்கம் செய்வது - சமநிலையற்ற தரவுகளை கையாளுதல் ⚖️\n",
|
|
"\n",
|
|
"<p >\n",
|
|
" <img src=\"../../../../../../translated_images/ta/recipes.186acfa8ed2e8f00.webp\"\n",
|
|
" width=\"600\"/>\n",
|
|
" <figcaption>@allison_horst அவர்களின் கலைப்பணி</figcaption>\n",
|
|
"\n",
|
|
"இந்த பாடம் சமையல் முறைகள் பற்றியது என்பதால், `recipes`-ஐ பொருத்தமான சூழலில் வைக்க வேண்டும்.\n",
|
|
"\n",
|
|
"Tidymodels மேலும் ஒரு சிறந்த தொகுப்பை வழங்குகிறது: `recipes`- தரவுகளை முன்கூட்டியே செயலாக்குவதற்கான ஒரு தொகுப்பு.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "kkFd-JxdIaL6"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"நாம் மீண்டும் நமது சமையல் வகைகளின் பகிர்வைப் பார்ப்போம்.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "6l2ubtTPJAhY"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Distribution of cuisines\r\n",
|
|
"old_label_count <- df_select %>% \r\n",
|
|
" count(cuisine) %>% \r\n",
|
|
" arrange(desc(n))\r\n",
|
|
"\r\n",
|
|
"old_label_count"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "1e-E9cb7JDVi"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"பார்க்கும் படி, சமையல் வகைகளின் எண்ணிக்கையில் மிகவும் சமமற்ற விநியோகம் உள்ளது. கொரிய சமையல் வகைகள் தாய் சமையல் வகைகளின் மும்மடங்கு அதிகமாக உள்ளன. சமநிலையற்ற தரவுகள் மாடல் செயல்திறனை எதிர்மறையாக பாதிக்கக்கூடும். ஒரு இரும நிலை வகைப்பாட்டை (binary classification) பற்றி சிந்தியுங்கள். உங்கள் தரவின் பெரும்பாலானவை ஒரு வகையாக இருந்தால், ஒரு இயந்திரக் கற்றல் மாடல் அந்த வகையை அதிகமாக கணிக்கப் போகிறது, ஏனெனில் அதற்கான தரவுகள் அதிகமாக உள்ளன. தரவுகளை சமநிலைப்படுத்துவது எந்தவிதமான சாய்வான தரவையும் சரிசெய்து, இந்த சமநிலையற்ற தன்மையை நீக்க உதவுகிறது. பல மாடல்கள் கண்காணிப்புகளின் எண்ணிக்கை சமமாக இருக்கும் போது சிறப்பாக செயல்படுகின்றன, எனவே சமநிலையற்ற தரவுகளுடன் போராடுகின்றன.\n",
|
|
"\n",
|
|
"சமநிலையற்ற தரவுத் தொகுப்புகளை கையாள இரண்டு முக்கியமான வழிகள் உள்ளன:\n",
|
|
"\n",
|
|
"- குறைந்த அளவிலான வகைக்கு கண்காணிப்புகளை சேர்த்தல்: `Over-sampling` உதாரணமாக SMOTE அல்காரிதத்தைப் பயன்படுத்துதல்\n",
|
|
"\n",
|
|
"- அதிக அளவிலான வகையிலிருந்து கண்காணிப்புகளை நீக்குதல்: `Under-sampling`\n",
|
|
"\n",
|
|
"இப்போது, ஒரு `recipe` பயன்படுத்தி சமநிலையற்ற தரவுத் தொகுப்புகளை எவ்வாறு கையாள்வது என்பதை விளக்குவோம். ஒரு recipe என்பது ஒரு ப்ளூபிரிண்ட் போல, ஒரு தரவுத் தொகுப்பை தரவுப் பகுப்பாய்வுக்கு தயாராக மாற்ற எந்த படிகளைப் பயன்படுத்த வேண்டும் என்பதை விவரிக்கிறது.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "soAw6826JKx9"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Load themis package for dealing with imbalanced data\r\n",
|
|
"library(themis)\r\n",
|
|
"\r\n",
|
|
"# Create a recipe for preprocessing data\r\n",
|
|
"cuisines_recipe <- recipe(cuisine ~ ., data = df_select) %>% \r\n",
|
|
" step_smote(cuisine)\r\n",
|
|
"\r\n",
|
|
"cuisines_recipe"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "HS41brUIJVJy"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"நாம் முன் செயலாக்கத்தின் படிகளைப் பிரிக்கலாம்.\n",
|
|
"\n",
|
|
"- `recipe()` என்ற அழைப்பில் ஒரு சூத்திரத்தைப் பயன்படுத்துவது, `df_select` தரவை மேற்கோளாகக் கொண்டு மாறிலிகளின் *பங்கு*களை ரெசிபிக்கு தெரிவிக்கிறது. உதாரணமாக, `cuisine` நெடுவரிசைக்கு `outcome` பங்கு ஒதுக்கப்பட்டுள்ளது, மற்ற நெடுவரிசைகள் அனைத்துக்கும் `predictor` பங்கு ஒதுக்கப்பட்டுள்ளது.\n",
|
|
"\n",
|
|
"- [`step_smote(cuisine)`](https://themis.tidymodels.org/reference/step_smote.html) என்பது ஒரு ரெசிபி படியின் *விவரக்குறிப்பு*வை உருவாக்குகிறது, இது குறைந்த அளவிலான வகுப்புகளின் புதிய எடுத்துக்காட்டுகளை, அவற்றின் அருகிலுள்ள அண்டை மதிப்புகளைப் பயன்படுத்தி செயற்கையாக உருவாக்குகிறது.\n",
|
|
"\n",
|
|
"இப்போது, முன் செயலாக்கப்பட்ட தரவைப் பார்க்க விரும்பினால், நாங்கள் [**`prep()`**](https://recipes.tidymodels.org/reference/prep.html) மற்றும் [**`bake()`**](https://recipes.tidymodels.org/reference/bake.html) ஆகியவற்றை எங்கள் ரெசிபியில் பயன்படுத்த வேண்டும்.\n",
|
|
"\n",
|
|
"`prep()`: ஒரு பயிற்சி தொகுப்பிலிருந்து தேவையான அளவுருக்களை மதிப்பீடு செய்து, பிற தரவுத்தொகுப்புகளில் பின்னர் பயன்படுத்த முடியும்.\n",
|
|
"\n",
|
|
"`bake()`: தயாரிக்கப்பட்ட ரெசிபியை எடுத்து, எந்த தரவுத்தொகுப்பிலும் செயல்பாடுகளைப் பயன்படுத்துகிறது.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "Yb-7t7XcJaC8"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Prep and bake the recipe\r\n",
|
|
"preprocessed_df <- cuisines_recipe %>% \r\n",
|
|
" prep() %>% \r\n",
|
|
" bake(new_data = NULL) %>% \r\n",
|
|
" relocate(cuisine)\r\n",
|
|
"\r\n",
|
|
"# Display data\r\n",
|
|
"preprocessed_df %>% \r\n",
|
|
" slice_head(n = 5)\r\n",
|
|
"\r\n",
|
|
"# Quick summary stats\r\n",
|
|
"preprocessed_df %>% \r\n",
|
|
" introduce()"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "9QhSgdpxJl44"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"இப்போது நமது சமையல் வகைகளின் பகிர்வை சரிபார்த்து, சமநிலையற்ற தரவுடன் அவற்றை ஒப்பிடலாம்.\n"
|
|
],
|
|
"metadata": {
|
|
"id": "dmidELh_LdV7"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Distribution of cuisines\r\n",
|
|
"new_label_count <- preprocessed_df %>% \r\n",
|
|
" count(cuisine) %>% \r\n",
|
|
" arrange(desc(n))\r\n",
|
|
"\r\n",
|
|
"list(new_label_count = new_label_count,\r\n",
|
|
" old_label_count = old_label_count)"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "aSh23klBLwDz"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"அருமை! தரவுகள் சுத்தமாகவும், சமநிலையாகவும், மிகவும் சுவையாகவும் உள்ளன 😋!\n",
|
|
"\n",
|
|
"> பொதுவாக, ஒரு செய்முறை (recipe) என்பது மாடலிங் செய்ய முன்பதிகரிக்க பயன்படுத்தப்படும் ஒரு முறையாகும், இதில் தரவுத்தொகுப்பை மாடலிங் செய்ய தயாராக மாற்ற என்னென்ன படிகள் செய்ய வேண்டும் என்பதை வரையறுக்கிறது. அந்த சந்தர்ப்பத்தில், `workflow()` பொதுவாக பயன்படுத்தப்படுகிறது (நாம் முன் பாடங்களில் இதைப் பார்த்துள்ளோம்) செய்முறையை கையால் மதிப்பீடு செய்யாமல்.\n",
|
|
">\n",
|
|
"> tidymodels பயன்படுத்தும்போது, **`prep()`** மற்றும் **`bake()`** செய்முறைகளை பொதுவாக நீங்கள் செய்ய வேண்டியதில்லை, ஆனால் அவை உங்கள் கருவிப்பெட்டியில் உதவியாக இருக்கும், குறிப்பாக செய்முறைகள் நீங்கள் எதிர்பார்த்தபடி செயல்படுகிறதா என்பதை உறுதிப்படுத்த உதவுகிறது, எங்கள் சந்தர்ப்பத்தில் போல.\n",
|
|
">\n",
|
|
"> நீங்கள் **`bake()`** செய்யும்போது, **`new_data = NULL`** உடன், நீங்கள் செய்முறையை வரையறுத்த போது வழங்கிய தரவுகளை திரும்பப் பெறுவீர்கள், ஆனால் முன்பதிகரிப்பு படிகளை கடந்து.\n",
|
|
"\n",
|
|
"இப்போது இந்த தரவின் ஒரு பிரதியை எதிர்கால பாடங்களுக்கு பயன்படுத்த சேமிப்போம்:\n"
|
|
],
|
|
"metadata": {
|
|
"id": "HEu80HZ8L7ae"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Save preprocessed data\r\n",
|
|
"write_csv(preprocessed_df, \"../../../data/cleaned_cuisines_R.csv\")"
|
|
],
|
|
"outputs": [],
|
|
"metadata": {
|
|
"id": "cBmCbIgrMOI6"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"இந்த புதிய CSV இப்போது மூல தரவுக் கோப்பகத்தில் கிடைக்கிறது.\n",
|
|
"\n",
|
|
"**🚀சவால்**\n",
|
|
"\n",
|
|
"இந்த பாடத்திட்டத்தில் பல 흥미로운 தரவுத்தொகுப்புகள் உள்ளன. `data` கோப்பகங்களை ஆராய்ந்து, binary அல்லது multi-class வகைப்பாட்டிற்கு பொருத்தமான தரவுத்தொகுப்புகள் உள்ளதா என்று பாருங்கள். இந்த தரவுத்தொகுப்பை நீங்கள் எந்த கேள்விகளை கேட்பீர்கள்?\n",
|
|
"\n",
|
|
"## [**பாடத்திற்குப் பின் வினாடி வினா**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/20/)\n",
|
|
"\n",
|
|
"## **மீளாய்வு & சுயபடிப்பு**\n",
|
|
"\n",
|
|
"- [package themis](https://github.com/tidymodels/themis) ஐ பாருங்கள். சமநிலை இல்லாத தரவுகளை கையாள எவ்வகையான மற்ற தொழில்நுட்பங்களை நாம் பயன்படுத்தலாம்?\n",
|
|
"\n",
|
|
"- Tidy models [குறிப்பு இணையதளம்](https://www.tidymodels.org/start/).\n",
|
|
"\n",
|
|
"- H. Wickham மற்றும் G. Grolemund, [*R for Data Science: Visualize, Model, Transform, Tidy, and Import Data*](https://r4ds.had.co.nz/).\n",
|
|
"\n",
|
|
"#### நன்றி:\n",
|
|
"\n",
|
|
"[`Allison Horst`](https://twitter.com/allison_horst/) R-ஐ மேலும் வரவேற்கக்கூடிய மற்றும் ஈர்க்கக்கூடியதாக்கும் அற்புதமான படங்களைக் கற்பனை செய்ததற்காக. மேலும் படங்களை அவரது [கேலரியில்](https://www.google.com/url?q=https://github.com/allisonhorst/stats-illustrations&sa=D&source=editors&ust=1626380772530000&usg=AOvVaw3zcfyCizFQZpkSLzxiiQEM) காணலாம்.\n",
|
|
"\n",
|
|
"[Cassie Breviu](https://www.twitter.com/cassieview) மற்றும் [Jen Looper](https://www.twitter.com/jenlooper) இந்த தொகுதியின் அசல் Python பதிப்பை உருவாக்கியதற்காக ♥️\n",
|
|
"\n",
|
|
"<p >\n",
|
|
" <img src=\"../../../../../../translated_images/ta/r_learners_sm.cd14eb3581a9f28d.webp\"\n",
|
|
" width=\"600\"/>\n",
|
|
" <figcaption>@allison_horst அவர்களின் கலைப்பணி</figcaption>\n"
|
|
],
|
|
"metadata": {
|
|
"id": "WQs5621pMGwf"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"\n---\n\n**குறிப்பு**: \nஇந்த ஆவணம் [Co-op Translator](https://github.com/Azure/co-op-translator) என்ற AI மொழிபெயர்ப்பு சேவையை பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. எங்கள் தரச்செயல்முறையை உறுதிப்படுத்த முயற்சிக்கிறோம், ஆனால் தானியக்க மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கக்கூடும் என்பதை கவனத்தில் கொள்ளவும். அதன் தாய்மொழியில் உள்ள மூல ஆவணம் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பல்ல.\n"
|
|
]
|
|
}
|
|
]
|
|
} |