بهترین راه برای درک داده ها، بررسی آنهاست. Gota را وارد کنید، یک بسته Go که به شما کمک می کند دقیقاً این کار را انجام دهید.
برای تجزیه و تحلیل یک مجموعه داده، ابتدا باید داده ها را درک کنید. گاهی اوقات، شما ممکن است هیچ دانشی از یک مجموعه داده نداشته باشید و نتوانید بیشترین بهره را از آن ببرید. به عنوان یک تحلیلگر داده، می توانید از تجزیه و تحلیل داده های اکتشافی (EDA) برای به دست آوردن دانش درباره مجموعه داده خود قبل از تجزیه و تحلیل عمیق استفاده کنید.
تجزیه و تحلیل داده های اکتشافی (EDA) یک مجموعه داده را برای به دست آوردن بینش معنی دار بررسی می کند. فرآیند انجام EDA شامل جستجوی اطلاعات در مورد ساختار و محتوای یک مجموعه داده است.
نصب پکیج Gota
بسته Gota محبوب ترین برای تجزیه و تحلیل داده ها در Go است. مانند بسته پایتون پاندا اما برای Go است. بسته Gota شامل روش های زیادی برای تجزیه و تحلیل مجموعه داده ها و خواندن فرمت های JSON، CSV و HTML است.
این دستور را در ترمینال خود در دایرکتوری که فایل ماژول Go را مقداردهی اولیه کرده اید اجرا کنید:
go get -u github.com/go-gota/gota
دستور Gota را در دایرکتوری محلی نصب میکند تا بتوانید بسته را وارد کنید تا از آن استفاده کنید.
درست مانند پانداها، گوتا از عملیات سری و دیتافریم پشتیبانی می کند. دو بسته فرعی در بسته Gota وجود دارد: سری و بسته دیتا فریم. بسته به نیاز خود می توانید یکی یا هر دو را وارد کنید.
import (
"github.com/go-gota/gota/series"
"github.com/go-gota/gota/dataframe"
)
خواندن یک مجموعه داده با استفاده از بسته Gota
میتوانید از هر فایل CSV که دوست دارید استفاده کنید، اما مثالهای زیر نتایج یک مجموعه داده Kaggle را نشان میدهند که حاوی اطلاعات قیمت لپتاپ است.
Gota به شما امکان میدهد فرمتهای فایل CSV، JSON و HTML را بخوانید تا با استفاده از روشهای ReadCSV، ReadJSON و ReadHTML، دیتافریم ایجاد کنید. در اینجا نحوه بارگذاری یک فایل CSV در یک شیء دیتافریم آورده شده است:
file, err := os.Open("/path/to/csv-file.csv")
if err != nil {
fmt.Println("file open error")
}
dataFrame := dataframe.ReadCSV(file)
fmt.Println(dataFrame)
برای باز کردن فایل CSV می توانید از روش Open بسته os استفاده کنید. متد ReadCSV شی فایل را می خواند و یک شئ دیتافریم را برمی گرداند.
وقتی این شی را چاپ می کنید، خروجی به صورت جدولی است. شما می توانید با استفاده از روش های مختلفی که Gota ارائه می دهد، شیء دیتافریم را دستکاری کنید.
شی فقط در صورتی که یک مجموعه داده بیش از مقدار مجموعه داشته باشد، برخی از ستون ها را چاپ می کند.
واکشی ابعاد مجموعه داده
ابعاد یک دیتافریم تعداد سطرها و ستون های آن است. شما می توانید این ابعاد را با استفاده از روش Dims شیء dataframe واکشی کنید.
var rows, columns = dataFrame.Dims()
یکی از متغیرها را با زیرخط جایگزین کنید تا فقط بعد دیگر را واکشی کنید. همچنین با استفاده از روش های Nrow و Ncol می توانید تعداد سطرها و ستون ها را به صورت جداگانه پرس و جو کنید.
var rows = dataFrame.Nrow()
var columns = dataFrame.Ncol()
واکشی انواع دادههای ستونها
برای تجزیه و تحلیل باید انواع داده های ترکیبی در ستون های مجموعه داده را بشناسید. شما می توانید این موارد را با استفاده از روش Types شیء dataframe خود واکشی کنید:
var types = dataFrame.Types()
fmt.Println(types)
متد Types یک برش حاوی انواع داده های ستون را برمی گرداند:
واکشی نام ستون ها
برای انتخاب ستونهای خاص برای عملیات، به نام ستونها نیاز دارید. برای واکشی آنها می توانید از روش نام ها استفاده کنید.
var columnNames := dataFrame.Names()
fmt.Println(columnNames)
متد Names برشی از نام ستون ها را برمی گرداند.
بررسی مقادیر از دست رفته
ممکن است مجموعه داده ای داشته باشید که حاوی مقادیر تهی یا غیر عددی باشد. می توانید چنین مقادیری را با استفاده از روش های HasNaN و IsNaN یک شی سری بررسی کنید:
aCol := dataFrame.Col("display_size")
var hasNull = aCol.HasNaN()
var isNotNumber = aCol.IsNaN()
HasNan بررسی می کند که آیا یک ستون دارای عناصر تهی است یا خیر. IsNaN برشی از بولی ها را برمی گرداند که نشان می دهد آیا هر مقدار در ستون یک عدد است یا خیر.
انجام تجزیه و تحلیل آماری توصیفی
تجزیه و تحلیل آماری توصیفی به شما کمک می کند تا توزیع ستون های عددی را درک کنید. با استفاده از روش توصیف، می توانید یک تحلیل آماری توصیفی از مجموعه داده خود ایجاد کنید:
description := dataFrame.Describe()
fmt.Println(description)
متد Describe معیارهایی مانند میانگین، انحراف استاندارد و حداکثر مقادیر ستونها در یک مجموعه داده را برمیگرداند. این موارد را در قالب جدول خلاصه می کند.
همچنین میتوانید با انتخاب یک ستون خاص، مشخص باشید و بر روی ستونها و معیارها تمرکز کنید، سپس متریک مورد نظر خود را پرس و جو کنید. ابتدا باید مجموعه ای را که نشان دهنده یک ستون خاص است واکشی کنید، سپس از روش های آن مانند زیر استفاده کنید:
aCol := dataFrame.Col("display_size")
var mean = aCol.Mean()
var median = aCol.Median()
var minimum = aCol.Min()
var standardDeviation = aCol.StdDev()
var maximum = aCol.Max()
var quantiles25 = aCol.Quantile(25.0)
این روش ها منعکس کننده نتایج حاصل از تجزیه و تحلیل آماری توصیفی است که Describe انجام می دهد.
واکشی عناصر در یک ستون
یکی از آخرین کارهایی که میخواهید انجام دهید، بررسی مقادیر در یک ستون برای یک نمای کلی است. برای مشاهده مقادیر یک ستون می توانید از روش Records استفاده کنید.
aCol := dataFrame.Col("brand")
fmt.Println(aCol.Records())
این متد تکه ای از رشته ها حاوی مقادیر ستون انتخابی شما را برمی گرداند:
صادرات Gota Dataframe به یک فایل
اگر تصمیم دارید بیشتر پیش بروید و از بسته Gota برای تجزیه و تحلیل کامل داده ها استفاده کنید، باید داده ها را در فایل ها ذخیره کنید. میتوانید از روشهای WriteCSV و WriteJSON dataframe برای صادرات فایلها استفاده کنید. متدها فایلی را میگیرند که با استفاده از متد Create بسته os ایجاد میکنید.
در اینجا نحوه صادرات یک دیتافریم با استفاده از بسته Gota آورده شده است.
dataFrame := dataframe.ReadCSV(file)
outputFile, err := os.Create("output.csv")
if err != nil {
log.Fatal(err)
}
err = dataFrame.WriteCSV(outputFile)
if err != nil {
log.Fatalln("There was an error writing the dataframe contents to the file")
}
متغیر dataFrame نمایشی از dataframe است. هنگامی که از متد Create بسته os استفاده می کنید، یک فایل جدید و خالی با نام مشخص شده ایجاد می کند و فایل را برمی گرداند. متد WriteCSV نمونه فایل را می گیرد و اگر خطایی وجود نداشته باشد یک خطا یا صفر برمی گرداند.
تجزیه و تحلیل داده های اکتشافی مهم است
درک داده ها و مجموعه داده ها برای تحلیلگران داده و متخصصان یادگیری ماشین ضروری است. این یک عملیات حیاتی در چرخه کاری آنها است و تجزیه و تحلیل داده های اکتشافی یکی از تکنیک هایی است که آنها برای دستیابی به آن استفاده می کنند.
چیزهای بیشتری برای بسته Gota وجود دارد. میتوانید از آن برای توابع مختلف درگیری دادهها به همان روشی که از کتابخانه Python Pandas برای تجزیه و تحلیل دادهها استفاده میکنید، استفاده کنید. با این حال، Gota به اندازه پانداها از عملکرد پشتیبانی نمی کند.