همه چیز در مورد آموزش علم داده (Data Science) با پایتون
مقدمه
سالیان زیادی از اختراع کامپیوتر و پدیدن آمدن تکنولوژی های مرتبط با آن نگذشته است، اما در همین مدت انقلاب های زیادی رخ داده است. مردمی که ما می بینیم چنان درگیر تکنولوژی و وسایل مربوط به آن شده اند، که دیگر باید اعتیاد به تکنولوژی را جدی بگیریم. در ادامه در مقاله ی آموزش علم داده (Data Science) با پایتون با ما همراه باشید.
هر نرم افزاری و وبسایتی که شما می بینید از مجموعه ای کد تشکیل شده است، که مثل آجر های و مصالحی هستند که یک خانه را تشکیل می دهد. داده ها در دنیای ما نقش بی نهایت مهمی دارند. از یک سیستم مدرسه شروع کنیم تا سازمان های بسیار بزرگ، که به نوعی همه و همه نیاز بسیار زیادی به داده ها دارند.
یک مدرسه را تصور کنید که لیست دانش آموزان را ندارد! یا لیست ساعات حضور معلم ها را آیا می شود بدون نگهداری داده های هر دانش آموز و تمام داده ها مورد نیاز دیگر یک مدرسه را اداره کرد؟
مسلما نه، ما در همه جا به مجموعه ای از داده ها و نگهداری آنها نیاز داریم. باید گاهی آنها را تحلیل کنیم گاهی آنها را ساده تر کنیم، گاهی آنها را حذف کنیم، گاهی آنها را بروز کنیم و … علم داده را می توان علم نوظهوری دانست که می تواند بسیاری از شرکت ها را نجات دهد و مشاغل زیادی را ایجاد کند و حتی دیگر علوم را بهتر کند.
در این مقاله می خواهیم درباره ی آموزش علم داده (Data Science) با پایتون بحث کنیم ابتدا لازم است که مواردی چون علم داده چیست؟، پایتون و دیگر زبان های برنامه نویسی علم داده، کتابهای آموزشی علم داده، موقعیت های شغلی علم داده، اهمیت علم داده و آموزش علم داده با پایتون (Data Science) را بررسی کنیم.
علم داده چیست؟
اگر به ساده ترین شکل ممکن بگوییم که علم داده چیست؟ باید گفت که کسب آگاهی و دانش از مجموعه ای از داده ها یعنی شما با استفاده از داده های که دارید، چیزی را بفهمید یا چیزی را کشف کنید.
به زبان ساده تر، یعنی کسب اطلاعات به منظور استفاده از آن (در بسیاری از وبسایت ها خارجی و داخلی تعریف علم داده پیچیده تر آمده است این تعریف از علم داده تعریف بسیار ساده و قابل فهم برای هر کسی است، اما تعریف کاملی نیست.
برای رسیدن به درک بهتر مثال ها و دیگر تعاریف از علم داده، این مقاله را با دقت بخوانید. در واقع علم داده دانشی میان رشته ای است. برای کسب دانش و آگاهی از داده ها و اطلاعات که از روش ها، الگوریتم ها سیستم های علمی و فرآیند ها برای کسب آگاهی و بینش از داده های ساختار یافته و ساختار نیافته استفاده می کند.
داده های ساختار یافته و ساختار نیافته
در مورد داده های ساختار یافته و ساختار نیافته باید گفت که داده های ساختار یافته به داده هایی گفته می شود که، برای کامپیوتر قابل فهم هستند. یعنی کامپیوتر می تواند با این داده ها سریع کار پردازش را انجام دهد. مثل داده های موجود در پایگاه های داده یا مثلا داده های نرم افزار اکسل اما داده های ساختار نیافته مثل داده های هستند که در بانک های اطلاعاتی قرار ندارند.
یک مثال واضح تر داده های موجود در ویدیو ها، اخبار، آهنگ ها و … است. این داده ها برای اینکه بتوانیم آنها را در علم داده، داده کاوی و یادگیری ماشین استفاده کنیم، باید ساختار یافته شوند.
به عبارتی دیگر هر نوع داده ای که کامپیوتر سریعا بتواند آن را با استفاده از الگوریتم های از پیش تعیین شده پردازش کند ساختار یافته است(این توضیح نیاز بود چرا که شما در طول آموزش علم داده(Data Sicence) با پایتون ممکن است بارها نام داده ی ساختار یافته و داده ی ساختار نیافته را ببینید)
تخصص در علم داده یکی از نیازهای عصر ماست
اگر هنوز هم متوجه ی مفهوم علم داده نشده اید، با یک مثال دیگر این مفهوم را برای شما توضیح خواهیم داد.
تصور کنید که علم آمار، ریاضی، برنامه نویسی و تجزیه و تحلیل داده را می دانید به این فکر کنید که این علوم تا چه اندازه می توانند کمک بکنند که با استفاده از داده هایی که به دست آورده اید(مثل اطلاعاتی که از شخصیت کاربرانتان دارید) کسب و کارتان را بهتر کنید.
به عنوان مثال شما می توانید بهترین محصولی که کاربران واقعا به آن نیاز دارند را عرضه کنید فقط با کمک علم داده! از توضیحات بیشتر می گذریم و ادامه ی آموزش علم داده (Data Science) با پایتون را دنبال می کنیم (اگر در درک علم داده باز هم مشکل داشتید می توانید به مقالات و ویدیو های موجود در سطح وب مراجعه کنید و بعد مقاله را ادامه دهید).
اهمیت علم داده
شاید یکی از مهمترین مزایای علم داده برای شرکت ها را بتوان قدرت تصمیم گیری دانست. علم داده بی نهایت در تصمیم گیری های اصلی شرکت ها مهم است.
با وجود اطلاعات از داده های کاربران می توان بهترین تصمیم ها را گرفت و کسب و کار خود را تقویت کرد اینکه کاربران چه می خواهند؟ در جستجوی چه هستند؟ چه را دوست دارند؟ به چه چیزهایی عادت دارند؟ میانگین سن اکثر کاربران یک محصول چند است؟ یا حتی مواردی مثل چه رنگ هایی در جذب کاربر بیشتر نقش دارند؟ نیز می تواند تصمیم گیری را برای شرکت ها ارائه دهنده خدمات بسیار آسان کند.
شرکت نتفلیکس (یک شرکت آمریکایی همانند فیلمو که سرویس آنلاین فیلم و سریال است) از داده های استفاده می کند تا سلیقه ی کاربران را در فیلم و سریال بداند و علاوه بر استفاده های متنوع از این اطلاعات، حتی این اطلاعات نقش مهمی در شروع پروژه ساخت یک فیلم جدید دارد.
آنها همیشه دوست دارند بدانند کاربران بیشتر چه فیلمی را دوست دارند ساخته شود. علم داده را می توان مورد نیاز همه ی شرکت های بزرگ و کوچک برای ارتقا کسب و کار دانست. اما چون این کار در اکثر اوقات مخصوصا وقتی با داده های ساختار نیافته طرف هستیم، هزینه و زمان زیادی می خواهد.
فقط شرکت های کمی روی علم داده سرمایه گذاری می کنند. (این را هم در نظر بگیرید که استخدام متخصصین علم داده هزینه ی زیادی می خواهد و این افراد حقوق بسیار بالای را می خواهند چون برای متخصص شدن در علم داده باید چند علم را به خوبی یاد گرفت، سالهای زیادی را صرف یادگیری کرد و قطعا برای رسیدن به این شغل هوش بالایی نیاز است).
زبان برنامه نویسی پایتون
اگر می خواهید متخصص علم داده شوید، در لحظه ی نگارش این مقاله زبان برنامه نویسی پایتون و آر (R) بهترین گزینه ها هستند. (بیشتر کتاب و ویدیو های آموزشی از همین دو زبان برنامه نویسی است) چون این مقاله درباره ی آموزش علم داده (Data Science) با پایتون است، پس فعلا کاری با زبان آر نداریم.
اما شما باید آشنایی کلی با زبان پایتون داشته باشید. پایتون زبان برنامه نویسی همه منظوره (می توان از آن برای ساخت انواع نرم افزار ها استفاده کرد، مثل :
- (نرم افزار های تحت وب یا نرم افزار های موبایل)
- متن باز (هر کسی می تواند این زبان برنامه نویسی را توسعه دهد و نسخه ای جدید از آن بسازد)
- شی گرا (از مفاهیم دنیای واقعی برای برنامه نویسی باید استفاده کرد)
- سطح بالا (این نوع زبان های بیشتر شبیه به زبان انسان است و یادگیری آنها آسان تر است از یادگیری زبان های سطح پایین)
مزایای استفاده از زبان برنامه نویسی پایتون
این زبان برنامه نویسی هم اکنون توسط بنیاد نرم افزار پایتون مدیریت می گردد. از مزایای پایتون نسبت به دیگر زبان های برنامه نویسی موجود در دنیا، این است که خوانایی کدهای پایتون بی نهایت بالاست و در کارهای تیمی شما وقتتان هدر نمی رود.
دیگر مزایای پایتون، سادگی کدهای آن است. یعنی اگر در دیگر زبان های برنامه نویسی برای انجام یک عمل صد خط کد نیاز باشد، در پایتون همین کار با بیست خط کد انجام خواهد شد.
کتابخانه های موجود برای پایتون بی نهایت زیاد هستند و برای همین است که پایتون فوق العاده است و به همین خاطر است که با پایتون می توان نرم افزار های مربوط به یادگیری ماشین و علم داده، ساخت.
در واقع با پایتون می توانید از علم داده جهت مقاصد مختلف استفاده کنید برنامه هایی که بخشی از آنها یا تمام نرم افزار با پایتون نوشته شده اند:
- اینستاگرام
- زوپ
- یام
- میلمن
- بیت تورنت
- چندلر
- پلون و کمبیلو و …
نکته ی مهم
شما برای شروع کار با پایتون و علم داده، به یک محیط برنامه نویسی نیاز دارید که بتوانید کدهای خود را در آنجا بنویسید، خطایابی کنید، و نتیجه ی کدها را ببینید. یکی از بهترین محیط های برنامه نویسی جهت کار با پایتون و علم داده محیط آناکوندا است.
می توانید این محیط را از این لینک دانلود کنید. بخاطر ساده بودن بیش از حد نحوه ی نصب این محیط از توضیح در این باره پرهیز می کنیم اما اگر مشکلی در نصب دارید به این لینک (https://onlinebme.com/unit/anaconda/) مراجعه کنید.
متخصص علم داده، شغل های این حوزه
یکی از مهمترین چیز هایی که باید درآموزش علم داده (Data Science) با پایتون بدانید، اهمیت علم داده و موقعیت شغلی آن است. اگر قصد مهاجرت دارید مخصوصا به کشور های بسیار پیشرفته و ایده ال مثل آمریکا، کانادا، استرالیا یا حتی کشور های اروپایی پس حتما نیاز است که علم داده را یاد بگیرید.
چرا که یکی از شغل های مورد نیاز این کشور های پیشرفته، متخصص داده یا دانشمند داده است (به طور کلی شغل های مرتبط به داده کاوی، علم داده، ماشین لرنینگ شغل هایی هستند که در آینده بسیار مورد نیاز هستند).
در کشوری نظیر ایران نیز شاید اکنون شاهد عناوین شغلی زیادی برای مهندسی داده یا دانشمند داده نباشیم، ولی این را فراموش نکنید که تا زمانی که شما این علم را یاد می گیرید، بسیاری از چیزها تغییر می کند و براساس تحقیق میلیون ها شغل جدید در آینده ای نه چندان دور بوجود می آید و جایگزین شغل های قدیمی می شود.
قطعا بسیاری از این شغل ها مربوط به علم داده و ماشین لرنینگ خواهد بود و کسانی که این شغل را حرفه ای بدانند، دارای حقوق بسیار بالایی می باشند (این احتمال که در دهه ی بعدی بیشترین حقوق متعلق به دانشمندان داده باشد بسیار بالاست).
در کشور ایران دانشگاه شهید بهشتی، اولین دانشگاهی بود که رشته علم داده را پوشش داده است و قطعا در آینده شاهد رشد بیشتر این رشته ی دانشگاهی در دانشگاه ها خواهیم بود. می گویند که علم داده جذاب ترین شغل قرن بیست و یکم است، اما فهمیدن این موضوع زیاد سخت نیست چون واقعا تمام کسب و کار ها به بینش واقعی از داده هایشان نیاز دارند.
ویدیو پییشنهادی : آموزش برنامه نویسی پایتون
برخی از دلایل یادگیری علم داده
نکته: نوبت می رسد به مبحث اصلی مقاله، یعنی آموزش علم داده (Data Science) با پایتون در این مقاله یا هر مقاله ای دیگر شما نخواهید توانست علم داده را یاد بگیرید یا متخصص آن شوید.
چون اگر واقعا دوست دارید این علم را یاد بگیرید، به چندین سال تلاش نیاز دارید (شما باید در دوره های سنگین شرکت کنید و چندین کتاب مطالعه کنید) اما در این مقاله ما خلاصه ای از اهمیت، آموزش و آشنایی با علم داده را آورده ایم.
در ابتدا لازم است که بگوییم که نزدیک به 67 درصد در جهان از زبان برنامه نویسی پایتون برای علم داده استفاده می کنند و این یعنی بالاترین درصد استفاده از یک زبان برنامه نویسی برای علم داده مورد دوم اینکه پیش بینی می شود که فرصت های شغلی علم داده رشد 15 درصدی خواهد داشت، تا سال آینده (اگر هر سال 17 درصد رشد داشته باشد، پس یعنی در سال های آینده یکی از مورد تقاضا ترین شغل های جهان خواهد بود).
مورد سوم اینکه میانگین درآمد یک متخصص داده 127918 دلار اعلام شده است یعنی چیزی حدود ماهی 115 میلیون به تومان! البته در ایران توقع چنین حقوقی نداشته باشید اما قطعا در ایران نیز متخصصان داده حقوق بسیار بالایی خواهند داشت.
در ادامه بصورت گام به گام پیش می رویم تا با تمام مراحل یادگیری علم داده با پایتون آشنا شوید.
قدم نخست برای آموزش علم داده (Data Science) با پایتون
قدم اول یادگیری علم داده، یادگیری اساس زبان پایتون است. یعنی ابتدا باید شما برنامه نویسی را بشناسید و بعد تا سطح مشخصی از زبان برنامه نویسی پایتون را فرا بگیرید.
اگر رشته دانشگاهی شما کامیپوتر است و یا اصول و اساس برنامه نویسی را می دانید، خوب باید گفت تا حدی جلو هستید و پایتون نیز زبان برنامه نویسی بسیار ساده ای است و نگرانی به دل راه ندهید چون سرعت شما در این قسمت مسلما بالا خواهد بود (سریع به پایتون مسلط خواهید شد).
اگر خود زبان برنامه نویسی پایتون را نیز می دانید، که بسیار بهتر خواهد بود و باید گفت بخشی از راه متخصص داده شدن را پیموده اید. اما اگر نه اصول برنامه نویسی می دانید و نه هیچ زبان برنامه نویسی باز هم مشکلی نیست، دوره ها و مقالات بسیار زیادی در سطح وب برای یادگیری شما وجود دارد که نزدیک به 80 درصد رایگان هستند و از آنجا که پایتون نسبت به دیگر زبان های برنامه نویسی ساده تر است پس زود مسلط می شوید.
البته نیاز نیست پایتون را بصورت حرفه ای یاد بگیرید. یا مثلا جهت ساخت برنامه های موبایل (برای اینکار باید از کتابخانه های پایتون استفاده کنید) بلکه فقط نیاز است که اساس پایتون را بدانید (سطح متوسط پایتون اکتفا می کند) در زیر نمونه ی کد پایتون جهت آشنایی بیشتر شما آورده شده است:
1. num1 = 1.5 2. num2 = 6.3 3. 4. # Add two numbers 5. sum = float(num1) + float(num2) 6. 7. # Display the sum 8. print('The sum of {0} and {1} is {2}'.format(num1, num2, sum))
در این مثال ابتدا دو متغیر تعریف شده است. بعد هر دو در یک متغیر دیگر جمع شده است و در خط آخر نتیجه ی جمع، دو عدد و متن مربوطه بر روی صفحه نمایش نشان داده شده است.
The sum of 1.5 and 6.3 is 7.8
نتیجه ی هشت خط کد بالا در صفحه نمایش
این فقط یک مثال کوچک بود برای یادگیری پایتون می توانید در دوره های بی شماری شرکت کنید (از دوره های خوب زبان فارسی دوره های مکتب خونه است). همچنین می توانید کتاب بخوانید (بیشتر کتاب ها انگلیسی هستند) و حتما در انجمن های برنامه نویسی شرکت کنید. در آنجا هم جواب سوالات زیادی را خواهید یافت و هم می توانید سوال بپرسید.
کتاب پایتون به زبان ساده می تواند یک منبع مناسب برای تازه واردان پایتون باشد این کتاب از آقای یونس ابراهیمی است و در کتابفروشی های آنلاین موجود است از ویژگی های این کتاب کامل بودن آن است.
یادگیری آمار و احتمالات
قدم بعدی یادگیری آمار و احتمالات و ریاضیات است. به احتمال زیاد شما دانش ریاضیات در حد متوسط را دارید حتی اگر چیزی از ریاضیات نمی دانید سعی کنید در اینترنت کمی بیشتر با ریاضیات درگیر شوید. و اما در مورد آمار و احتمالات باید گفت که بخش مهمی از علم داده را آمار و احتمالات تشکیل داده است، اگر در دانشگاه یا مدرسه زیاد به آمار و احتمالات توجه نداشته اید، سعی کنید از صفر شروع کنید(زمان زیادی برای تخصص در آمار و احتمالات نیاز نیست البته جهت یادگیری علم داده).
در دانش علم داده شما باید بیشتر از برنامه نویس بودن، به فکر یادگیری آمار باشید. حتما می توانید حدس بزنید که چرا آمار در علم داده مهم است شما در علم داده نیاز به جمع آوری اطلاعات و داده ها دارید.
همچنین مرتب سازی آنها و تجزیه و تحلیل و بررسی تمام احتمالات جهت پیشرفت شرکت ها و کسب و کارها با استفاده از داده ها ساختار یافته و ساختار نیافته.
کتابفروشی آنلاین
مثلا در یک کتابفروشی آنلاین: چند درصد از خوانندگان کتاب های علمی تخیلی را دوست دارند؟ چند درصد از خوانندگان کتاب های علمی تخیلی بالای 45 سال سن دارند؟ کتاب های علمی تخیلی کدام نویسندگان محبوب تر است؟ چرا مردم اینگونه کتاب ها را دوست دارند؟ علم آمار و احتمالات برای جمع آوری و دسته بندی این آمار ها، بررسی احتمالات و ارائه ی همه ی این نوع اطلاعات به شرکت نیاز است.
شما می توانید که در دوره های زیادی جهت یادگیری آمار و احتمالات شرکت کنید البته بهتر است آمار را فقط جهت استفاده در علم داده یاد بگیرید نه تمام علم آمار و احتمالات را، به همین منظور یک کتاب خوب را به شما معرفی می کنیم به اسم “آمار کاربردی برای دانشمندان داده: 50 مفهوم ضروری”.
این کتاب از اهمیت تحلیل داده ها و روش های کاربردی اش برای حل موقعیت های مختلف می گوید. همچنین شما با تکنیک های اساسی که برای پیش بینی داده ها و برنامه نویسی دستگاه استفاده می شود آشنا می شوید.
تا اینجای کار از شما توقع می رود که خوبی با زبان پایتون کار کنید و با استفاده از علم آمار به جمع آوری و تحلیل و داده ها بپردازید.
یادگیری کار با پایگاه داده
قدم بعدی برای یادگیری علم دادهT کار با پایگاه داده است. شما در ابتدا کار با خود زبان پایتون را یاد می گیریدt بعد آمار و احتمالات و دانش ریاضی را یاد می گیریدt که بتوانید داده ها را جمع کنید، تجزیه و تحلیل کنید و آنها را تبدیل به بینش و دانش مفید کنید.
قدم بعدی این است که شما یاد بگیرید که وقتی که داده ها را جمع آوری کردید و برخی از محاسبات و احتمالات را بررسی کردیدT بتوانید این داده ها را تبدیل به داده های ساختار یافته کنید و بعد داده های ساختار یافته را در پایگاه داده ذخیره کنید و یاد بگیرید که هر زمان که خواستید از پایگاه داده این اطلاعات را بیرون بکشید.
SQL
به زبان ساده سومین مهارتی که نیاز به یادگیری دارید، کار با یک پایگاه داده نظیر SQL است(به همین خاطر است به علم داده یک علم میان رشته ای می گویند یعنی از علوم زیادی تشکیل شده است و شما باید تمام آنها را یاد بگیرید).که به زبان پایتون متصل شود خوشبختانه زبان برنامه نویسی پایتون می تواند با تمامی پایگاه های داده ارتباط برقرار کند و شما می توانید هر کدام که می خواهید را یاد بگیری.
اگر نمی دانید که پایگاه داده چیست، باید بگویم که در مراحل ساخت یک وبسایت یا نرم افزار گاها شما نیاز به به ذخیره سازی داده های زیاد دارید. و اینکه شما سریعا بتوانید این داده ها را هر زمانی که خواستید دوباره بازیابی کنید.
پایگاه داده در واقع نرم افزاری است که، شما را قادر می سازد که داده های خود را نگهداری و سریعا بازیابی کنید. هر پایگاه داده طوری ساخته شده است که بتواند با یک زبان برنامه نویسی ارتباط برقرار کند(البته برخی پایگاه های داده توانایی ارتباط با چندین زبان برنامه نویسی را دارند) و البته تمام پایگاه داده هایی که وجود دارند. توانایی اتصال به پایتون را دارند و این نشان می دهد که پایتون یک زبان فوق العاده است.
در اینجا نیاز است که پایگاه داده SQL را معرفی کنیم. چون بیشتر دوره های آموزشی از زبان SQL استفاده می کنند. ما نیز اینجا این پایگاه داده را بررسی می کنیم.
اس کیو ال یا SQL
اس کیو ال یا SQL زبانی سطح بالا است و جهت ایجاد، تغییر و بازیابی داده ها و عملیات روی آنها به کار می رود. اس کیو ال زبانی بر پایه اعلان است یعنی برخلاف بسیاری از زبان های برنامه نویسی، مناسب حل مسئله نیست (به عبارت ساده تر، با این زبان نمی توان نرم افزار ساخت یا وبسایت طراحی کرد. بلکه جهت کار با داده ها ساخته شده است هر چند بخشی از هر وبسایت یا نرم افزار را می توان با این زبان ساخت البته بخش پایگاه داده ی آن را، نه سایر قسمت ها).
شاید تا اینجای مقاله فهمیده باشید که چرا می گویند چندین سال برای متخصص علم داده شدن نیاز است. چون علوم زیادی را برای رسیدن به این شغل نیاز دارید. کار با پایگاه داده یکی دیگر از مهمترین بخش های علم داده است. اگر قبلا برنامه نویسی کرده اید و یکی از پایگاه های داده را مسلط هستید با همان پایگاه داده می توانید به پایتون متصل شوید و داده ها را در پایگاه داده ذخیره و مرتب سازی کنید.
البته بهتر است جهت استفاده از دوره های بی شمار در اینترنت اس کیو ال را یاد بگیرید. اس کیو ال زبان سختی نیست و شما دو ماه زمان نیاز دارید تا به آن مسلط شوید
نمونه کدهای اس کیو ال:
SELECT * FROM books WHERE price = ۱۰۰٫۰۰ ORDER BY title
نشان دادن تمام ستون های جدول کتاب به شرطی که قیمت شان برابر با 10000 باشد و طبق عنوان مرتب شود. این ترجمه ی نمونه کد بالا بود در اس کیو ال select ستون ها را انتخاب می کند from جدول را انتخاب می کند where شرط را بیان می کند و order by نوع ترتیب را مشخص می کند.
SELECT * FROM books JOIN customers ON books.pid = customers.pid ORDER BY customers.lastName
دو جدول customer و books را به هم متصل می کند و فقط ردیف های دارای اشتراک بازیابی می شوند و نوع ترتیب براساس فامیلی مشتریان است.
INSERT INTO My_table (field1, field2, field3) VALUES ('test', 'N', NULL);
در کد بالا شما یک داده ی جدید ایجاد می کنید(همچنین به این عملیات در پایگاه داده عملیات درج نیز می گویند) کد بالا می گوید که به جدول my_table ستون های یک، دو و سه ردیف های جدید اضافه کن در علم داده احتمالا زیاد به این دستور کار خواهید کرد.
DELETE FROM My_table WHERE field2 = 'N';
دستور بالا، دستور حذف است. این کد می گوید که از جدول my_table ستون field2 مقدار N را حذف کن این دستور نیز به احتمال زیاد بسیار در مبحث علم داده در هنگام کار با پایتون به کار خواهد آمد.
کتابخانه های پایتون جهت کار با علم داده
اگر یک برنامه نویس نیستید یا زیاد به پایتون آشنایی ندارید، باید به شما بگوییم که یکی از بزرگترین مزایای پایتون دارا بودن تعداد بسیار زیادی کتابخانه و فریمورک است.
یعنی زبان پایتون بدون این کتابخانه ها نمی تواند کار زیادی انجام دهد و تمام همه منظوره بودن پایتون و توانایی کار با ماشین لرنینگ، داده کاوی و علم داده مدیون این کتابخانه ها است.
در واقع تمام زبان ها برنامه نویسی برای نشان دادن قدرت خود نیاز به کتابخانه های متعدد دارند. در اینجا نیاز است که شما شروع کنید به یادگیری کتابخانه های مربوط به علم داده ی پایتون، البته ابتدا باید مفاهیم اساسی پایتون را یاد بگیرید. همانطور که در قدم اول گفتیم و بعد در این جا نوبت می رسد به کتابخانه های مورد نیاز برای کار با علم داده:
1.NumPy
نام پی(NumPy) یک کتابخانه ی جبر خطی در پایتون است این کتابخانه بسیار مهم است کاربرد اصلی نام پی برای کار با اعداد و مقاصد علمی است(در زمینه ی کار با اعداد می توان آن را بهترین کتابخانه ی پایتون دانست).
گفتنی است که کتابخانه ی نام پی به طور خاص برای کار با آرایه ها و ماتریس های چند بعدی طراحی شده است نام پی یک کتابخانه ی بسیار سودمند برای انجام عمل منطقی و ریاضی بر روی آرایه هاست چند نمونه کد از کتابخانه نام پی در پایتون:
قبل از شروع برنامه نویسی با آناکوندا این کد conda install numpy را در خط فرمان(command promet) اجرا کنید.
ساخت یک آرایه یک بعدی با 25 عدد صحیح تصادفی:
arr = np.random.rand(25)
تبدیل آن به یک آرایه ی 2 بعدی با تابع reshape():
arr.reshape(5,5)
استفاده کردن از Max() و Min()؛ ما می توانیم حداقل و حداکثر ارزش ها در یک آرایه را بگیریم:
arr_2 = np.random.randint(0, 20, 10) arr_2.max() #This gives the highest value in the array arr_2.min() #This gives the lowest value in the array
در زیر یک مثال از جبر خطی آمده است تا بطور کامل با نحوه کار با ماتریس ها آشنا شوید:
>>> from numpy.random import rand >>> from numpy.linalg import solve, inv >>> a = np.array([[1, 2, 3], [3, 4, 6.7], [5, 9.0, 5]])
ترانهاده کردن یک ماتریس
>>> a.transpose() array([[ 1. , 3. , 5. ], [ 2. , 4. , 9. ], [ 3. , 6.7, 5. ]]) # معکوس کردن یک ماتریس >>> inv(a) array([[-2.27683616, 0.96045198, 0.07909605], [ 1.04519774, -0.56497175, 0.1299435 ], [ 0.39548023, 0.05649718, -0.11299435]]) >>> b = np.array([3, 2, 1]) # ax=b حل معادله >>> solve(a, b) array([-4.83050847, 2.13559322, 1.18644068])
نمایش ماتریس ۳ در ۳ اعداد تصادفی
>>> c = rand(3, 3) >>> c array([[ 3.98732789, 2.47702609, 4.71167924], [ 9.24410671, 5.5240412 , 10.6468792 ], [ 10.38136661, 8.44968437, 15.17639591]])
ضرب کردن ماتریسی
>>> np.dot(a, c) array([[ 3.98732789, 2.47702609, 4.71167924], [ 9.24410671, 5.5240412 , 10.6468792 ], [ 10.38136661, 8.44968437, 15.17639591]])
با چند نمونه خط کد در پایتون با کمک کتابخانه ی نام پی آشنا شدید. به یاد داشته باشید که برنامه نویسی یعنی تمرین، تمرین و باز هم تمرین همین الان دست به کار شوید و چند نمونه کد ساده را تمرین کنید.
یاد بگیرید که دست به کیبورد باشید و همیشه هر چیزی که یاد می گیرید را خود نیز تست کنید و گاها کد ها را تغییر دهید. از نتیجه نترسید برنامه نویس باید در روز با صد ها خطا روبرو شود. با این حال مقاله ی حلقه تکرار for در پایتون نیز را به شما پیشنهاد می کنیم.
مت پلات
یک کتابخانه از پایتون است، که برای رسم نمودار از آن استفاده می شود شما در هنگام کار با علم داده در پایتون حتما نیاز به رسم نمودار های دقیق و گوناگون دارید این کتابخانه کار شما را راه می اندازد.
نمونه کد کتابخانه مت پلات:
import matplotlib.pyplot as plt import matplotlib.tri as tri import numpy as np # First create the x and y coordinates of the points. n_angles = 36 n_radii = 8 min_radius = 0.25 radii = np.linspace(min_radius, 0.95, n_radii) angles = np.linspace(0, 2 * np.pi, n_angles, endpoint=False) angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1) angles[:, 1::2] += np.pi / n_angles x = (radii * np.cos(angles)).flatten() y = (radii * np.sin(angles)).flatten() # Create the Triangulation; no triangles so Delaunay triangulation created. triang = tri.Triangulation(x, y) # Mask off unwanted triangles. triang.set_mask(np.hypot(x[triang.triangles].mean(axis=1), y[triang.triangles].mean(axis=1)) < min_radius) fig1, ax1 = plt.subplots() ax1.set_aspect('equal') ax1.triplot(triang, 'bo-', lw=1) ax1.set_title('triplot of Delaunay triangulation')
نتیجه ی این نمونه کد شکل زیر می باشد، در این کد از کتابخانه های نام پی(جهت کار با اعداد) و مت پلات استفاده شده است.
یک نمونه کد از مثال قبلی با این تفاوت که در این مثال تمام مثلث ها توسط خود کاربر تعیین شده است. مثل مثال قبل هر مثلث از سه نقطه ساخته شده، با این تفاوت که در اینجا خود شما اندازه ی مثلث ها و محل قرار گیری را مشخص کرده اید:
xy = np.asarray([ [-0.101, 0.872], [-0.080, 0.883], [-0.069, 0.888], [-0.054, 0.890], [-0.045, 0.897], [-0.057, 0.895], [-0.073, 0.900], [-0.087, 0.898], [-0.090, 0.904], [-0.069, 0.907], [-0.069, 0.921], [-0.080, 0.919], [-0.073, 0.928], [-0.052, 0.930], [-0.048, 0.942], [-0.062, 0.949], [-0.054, 0.958], [-0.069, 0.954], [-0.087, 0.952], [-0.087, 0.959], [-0.080, 0.966], [-0.085, 0.973], [-0.087, 0.965], [-0.097, 0.965], [-0.097, 0.975], [-0.092, 0.984], [-0.101, 0.980], [-0.108, 0.980], [-0.104, 0.987], [-0.102, 0.993], [-0.115, 1.001], [-0.099, 0.996], [-0.101, 1.007], [-0.090, 1.010], [-0.087, 1.021], [-0.069, 1.021], [-0.052, 1.022], [-0.052, 1.017], [-0.069, 1.010], [-0.064, 1.005], [-0.048, 1.005], [-0.031, 1.005], [-0.031, 0.996], [-0.040, 0.987], [-0.045, 0.980], [-0.052, 0.975], [-0.040, 0.973], [-0.026, 0.968], [-0.020, 0.954], [-0.006, 0.947], [ 0.003, 0.935], [ 0.006, 0.926], [ 0.005, 0.921], [ 0.022, 0.923], [ 0.033, 0.912], [ 0.029, 0.905], [ 0.017, 0.900], [ 0.012, 0.895], [ 0.027, 0.893], [ 0.019, 0.886], [ 0.001, 0.883], [-0.012, 0.884], [-0.029, 0.883], [-0.038, 0.879], [-0.057, 0.881], [-0.062, 0.876], [-0.078, 0.876], [-0.087, 0.872], [-0.030, 0.907], [-0.007, 0.905], [-0.057, 0.916], [-0.025, 0.933], [-0.077, 0.990], [-0.059, 0.993]]) x = np.degrees(xy[:, 0]) y = np.degrees(xy[:, 1]) triangles = np.asarray([ [67, 66, 1], [65, 2, 66], [ 1, 66, 2], [64, 2, 65], [63, 3, 64], [60, 59, 57], [ 2, 64, 3], [ 3, 63, 4], [ 0, 67, 1], [62, 4, 63], [57, 59, 56], [59, 58, 56], [61, 60, 69], [57, 69, 60], [ 4, 62, 68], [ 6, 5, 9], [61, 68, 62], [69, 68, 61], [ 9, 5, 70], [ 6, 8, 7], [ 4, 70, 5], [ 8, 6, 9], [56, 69, 57], [69, 56, 52], [70, 10, 9], [54, 53, 55], [56, 55, 53], [68, 70, 4], [52, 56, 53], [11, 10, 12], [69, 71, 68], [68, 13, 70], [10, 70, 13], [51, 50, 52], [13, 68, 71], [52, 71, 69], [12, 10, 13], [71, 52, 50], [71, 14, 13], [50, 49, 71], [49, 48, 71], [14, 16, 15], [14, 71, 48], [17, 19, 18], [17, 20, 19], [48, 16, 14], [48, 47, 16], [47, 46, 16], [16, 46, 45], [23, 22, 24], [21, 24, 22], [17, 16, 45], [20, 17, 45], [21, 25, 24], [27, 26, 28], [20, 72, 21], [25, 21, 72], [45, 72, 20], [25, 28, 26], [44, 73, 45], [72, 45, 73], [28, 25, 29], [29, 25, 31], [43, 73, 44], [73, 43, 40], [72, 73, 39], [72, 31, 25], [42, 40, 43], [31, 30, 29], [39, 73, 40], [42, 41, 40], [72, 33, 31], [32, 31, 33], [39, 38, 72], [33, 72, 38], [33, 38, 34], [37, 35, 38], [34, 38, 35], [35, 37, 36]]) fig2, ax2 = plt.subplots() ax2.set_aspect('equal') ax2.triplot(x, y, triangles, 'go-', lw=1.0) ax2.set_title('triplot of user-specified triangulation') ax2.set_xlabel('Longitude (degrees)') ax2.set_ylabel('Latitude (degrees)') plt.show()
در این مثال نیز از کتابخانه ی نام پی به همراه مت پلات استفاده شده است. نتیجه ی کد بالا را در شکل زیر می بینید.
این دو نمونه ی کد، فقط جهت آشنایی بیشتر شما با کدنویسی و آموزش علم داده با پایتون بود. شما می توانید که مثال های بی شمار بیشتری را در سطح وب بیابید و تست کنید.
پانداس
سومین کتابخانه ی مهم علم داده پانداس است. بی شک پانداس در حال حاضر، یکی از اصلی ترین کتابخانه های پایتون برای آماده سازی و پیش پردازش داده ها است. پانداس متن باز است، کارایی بالایی دارد و ابزار های تحلیل داده برای زبان برنامه نویسی پایتون را فراهم کرده است.
پانداس از کتابخانه هایی است که می گویند، باید از آن برای علم داده در پایتون استفاده کرد. به علاوه کتابخانه ای قدرتمند برای پیش پردازش، بصری سازی و تحلیل داده هاست نمونه ای از کد های پانداس:
import numpy as np import pandas as pd s = pd.Series([1, 3, 5, np.nan, 6, 8]) s Out: 0 1.0 1 3.0 2 5.0 3 NaN 4 6.0 5 8.0 dtype: float64
در مثال بالا یک سری ساختیم از مقادیر که عدد صحیح پیش فرض هر کدام از مقادیر را نشان دهد. خروجی در ادامه ی کلمه ی Out آمده است فقط دو خط کد است. با دقت آن را بررسی کنید، از دو کتابخانه ی پانداس و نام پی در این مثال استفاده شده است.
ادامه ی راه در آموزش علم داده (Data Science) با پایتون
تا اینجای کار شما مسیر دور و دراز متخصص علم داده شدن را تقریبا پیموده اید اما نکات بسیار مهم دیگری هستند که باید بدانید. قبل از هر چیز نگاهی به مطلب آموزش دیکشنری در پایتون و بررسی متدهای آن خواهیم داشت.
ماشین لرنینگ
علم داده و ماشین لرنینگ ارتباط بسیار نزدیکی به هم دارند و می توان گفت به کمک یکدیگر می آیند. اگر شما می خواهید که علم داده را یاد بگیرید، قطعا به دانستن ماشین لرنینگ احتیاج پیدا خواهید کرد. چرا که در بسیاری از اوقات شما نیاز خواهید داشت که برای تحلیل داده ها از ماشین لرنینگ استفاده کنید.
یعنی مثلا یک سایت را طوری طراحی کنید که تمام آمار مربوطه را دسته بندی شده و بطور لحظه ای برای شما بفرستد بطور واضح تر وبسایت یاد بگیرد که اطلاعات و آمار را به شما بدهد در تمام موارد مثل بازدید های یک ساعت خاص از سایت، به طور کلی ماشین لرنینگ یعنی یادگیری ماشین مثل یک کامپیوتر که برخی از کار ها را انجام دهد.
تکنیک های در ارتباط با داده های ساختار نیافته: شما حتما نیاز خواهید داشت که داده هایی که ساختار نیافته هستند را به داده های ساختار یافته جهت استفاده در علم داده تغییر دهید.
داشتن اطلاعات مهم و ضروری از حوزه فعالیت
اگر می خواهید دانشمند داده شوید اولین قدم شما برای شروع فعالیت در یک شرکت باید همین باشد. شما باید به خوبی شرکت و زمینه ی فعالیت آن و مخصوصا زمینه ی فعالیت خود را بشناسید، تا بتوانید با استفاده از علم داده به حل مشکلات و کمبود ها بپردازید و راه حل های عالی ارائه دهید.
از مزایای علم داده تسهیل قدرت تصمیم گیری بود. شما برای این که سازمان یا شرکتی که در آن کار می کنید تصمیمات خوب و هوشمندانه بگیرند، باید زمینه ی فعالیت خود را بشناسید و با استفاده از علم داده بهترین تصمیم ها را برای آینده شرکت و بهتر شدن محصولات بگیرید.
مهارت ارتباطی
شاید بی راه نباشید اگر بگوییم، یک دانشمند داده مهارت ارتباطی و کلامی بالایی نداشته باشد، مثل این است که اصلا یک دانشمند داده نباشد. چون اگر شما سالها وقت صرف کنید برای تحقیق، جمع آوری آمار، برنامه نویسی و … اما نتوانید آنها را به شرکت ارائه دهید، مسلما زحمت شما بیهوده بوده است.
یک متخصص یا دانشمند داده باید بتواند با تیم هایی مثل تیم تبلیغات و بازاریابی خوب حرف بزند، نیاز های آنها را بفهمد(آیا آنها نیاز به چه بخش از جمع آوری داده دارند؟) و بعد دست به اقدام بزند و در پایان باید یافته های خود را به خوبی ارائه کند.
ویدیو پییشنهادی : آموزش پایتون جادی
جهت رشد و فروش بیشتر شرکت مثلا اگر شرکت مشتریانش فقط افراد میانسال هستند، دانشمند داده باید راه کاری برای جذب افراد جوان نیز ارائه دهد و طبق دیگر آمار جمع آوری شده، دلیل اینکه فقط افراد میانسال محصولات شرکت را دوست دارند بفهمد و به مدیران اطلاع دهد.
قدم آخر برای آموزش علم داده (Data Science) با پایتون
مثل دیگر علوم متخصص شدن در علم داده نیاز به پشتکار و تلاش و کوشش دارد باید چند علم مختلف را یاد بگیرید، به روز باشید و از تکنولوژی و علم آمار مطلع باشید. نیازی نیست که هوش بسیار بالایی داشته باشید تا بفهمید که جهان اکنون چه اندازه به متخصصان داده نیاز دارد.
فقط کافی است کمی فکر کنید آیا آمار و ارقام دقیق، تحلیل شده، و لحظه ای نمی تواند یک کسب و کار را صد ها برابر رشد دهد؟ آیا درک کامل از شخصیت مشتریان و عادت هایشان به معنی سود نیست؟ آیا اگر اطلاعات دریافتی از همه چیز تبدیل به بینش و آگاهی شود مسیر برای ادامه ی راه روشن نیست؟ و نمی شود وضع بازار را در آینده پیش بینی کرد؟
معرفی کتاب
اگر دوست دارید که متخصص داده شوید، از همین الان شروع کنید. این مقاله توضیح کاملی از آموزش علم داده با پایتون بود. اما شما برای تکمیل یادگیری نیاز به دوره های کامل و روز های زیادی برای یادگیری دارید. در ادامه چند کتاب خوب دیگر نیز به شما جهت یادگیری علم داده معرفی می شود که می توانید بخوانید.
1.Automate the boring stuff
این کتاب ساختار ساده ای دارد و بیشتر مفاهیم اساسی پیرامون استفاده از پایتون برای علم داده را در بر می گیرد. از جمله flow control، تابع ها، وب اسکراپینگ، کار کردن با فایلهای json و csv و آوردن برنامه ها جهت فهم بهتر، یک کتاب عالی برای شروع کار با پایتون است و همچنین وجود دستورالعمل های گام به گام برای هر تکنیک، در پایان هر فصل نیز سوالات و تمرینات زیادی وجود دارد.
دانلود کتاب: http: //www.tahlildadeh.com/EbookDetails/Automate-the-Boring-Stuff-with-Python
2.Think stats
یک بررسی واقعی از آمار برای علوم داده است. این کتاب، از مجموعه ای از داده های موسسه ی ملی بهداشت سراسر کشور آمریکا جهت توضیح مفاهیم اصلی آمار و احتمالات لازم برای علم داده و تجزیه و تحلیل استفاده می کند. یکی از کتاب های بسیار کاربردی است و شامل مقدار زیادی از نمونه کدهای پایتون و برنامه های ساده برای توضیح مفاهیم است. این کتاب در مقایسه با کتابهای درسی نظری که ممکن است در این موضوع پیدا کنید، حجم کمتری دارد و سبک آموزش آن پیشنهاد می شود.
دانلود کتاب: http: //greenteapress.com/thinkstats/thinkstats.pdf
3.Python data science handbook
یک راهنمای واقعا همه جانبه از پایتون برای علم داده است از مفاهیم مبتدی تا پیشرفته در این کتاب موجود است. این کتاب مواردی چون پوسته iPython، کتابخانه ی نام پی، دستکاری داده ها با پانداس، روش های بصری سازی، ماشین لرنینگ را پوشش می دهد فصل ماشین لرنینگ آن یکی از فصل های بسیار خوب کتاب است.
دانلود کتاب: https: //uploadboy.com/mtndp4ksbv3o/494/pdf
امیدواریم مقاله ی آموزش علم داده (Data Science) با پایتون برای شما مفید واقع شده باشد. در آخر نگاهی به مقاله ی میزان درآمد برنامه نویس پایتون نیز داشته باشید.
این مقاله یکی از کامل ترین ها تو بین مقاله های دیگه بود و ازت ممنونم.دوس دارم در مورد اینکه آیا علم داده و هوش مصنوعی ربطی به هم دارند یا کاملا از هم متفاوتند هم مقاله ای کامل همراه با سوالات مرتبط دیگه هم ازین بزاری.دمت گرم
سلام
حتما در مقالههای آینده درخواست شما منظور میشه.
از مقالات خارجی ، هم میتونید استفاده کنید .یک بخشی از Machine learning مورد استفادۀ علم داده هستش که خود یادگیری ماشین بخشی از هوش مصنوعی هستش .
ممنون از راهنماییتون
کتابایی که معرفی کردید ترجمه فارسی هم داره ؟
اگر pdf دارید لطفا لینکشو تو سایت بذارید
سلام ممنون از همراهیتون
به درخواست شما، لینک برای دانلود کتابها داخل مقاله قرار داده شد.
خیلی ازتون ممنونم خیلی باعث شد روشن بشم و قدم ب قدم راهی ک میخواستم برمو نوشته بود مرسی مرسی
سلام روزتون بخیر
خوشحالیم که تونستیم برای یادگیری بهتر به شما کمک کنیم
بهترین مقالهای بود که در مورد شروع کار در مسیر علم داده خوندم. عالی هستید واقعا
سلام روزتون بخیر
سپاسگزاریم که با ما همراه هستید
سلام. ممنون از توضیحات کامل و جامعتون. ممنون میشم آموزشگاهی که دوره علم داده رو از صفر تا صد و به صورت حرفه ای آموزش میدن رو معرفی کنید.
سلام
متاسفانه اینگونه اطلاعات را در دسترس نداریم
سلام
دوره کار با علم داده رو کی اماده می کنید خریداری کنیم
با تدریس آقای جادی البته
سلام
دورهی علم داده با استاد جادی تهیه نشده است و قصد داریم در آینده دورهی علم داده با استادان دانشگاه شریف داشته باشیم
مقاله هاتون خیلی خوبن. کامل و همراه با عکس
ممنونم
سلام
ممنون از توجه و همراهیتون
ممنون بابت توصیحات کاملتون. سوالی که پیش میاد این هست که در توصیحات شما اس کیو ال برای کار با داده های ساخت یافته پیشنهاد شده. برای کار با داده های غیر ساخت یافته چه پیشنهادی دلرین؟
سلام
دوره ی علم داده تون کی آماده میشه؟؟ (قرار بود با یکی از اساتید شریف باشه)
سلام
دوره در حال ضبط هست به امید خدا برای اسفند آماده ست.
جدي يعني همين ماه مياد ؟!
اي ول
سلام خسته نباشید.
دوره علم داده هنوز آماده نشده؟ ممنون میشم زمان دقیقش رو بفرمایید اگر مشخصه.
سلام
این هفته یا هفته دیگه درس منتشر خواهد شد.
خیلی ممنون از مقاله خوب و کاملی که نوشتید در بین شماری از مطالبی که در مورد علوم داده مطالعه کردم این یکی از همه کامل تر و دقیق تر نوشته شده بود ، پاینده باشید
سلام
ممنون از توضیحات کامل و دقیق و جامعتون
لطفا مطالب بیشتری درباره دیتاساینس بزارید
ممنونم ازتون
سلام من نمیتونم دوره تون رو ببینم میشه لطفا راهنماییم کنید کجا باید برم تا بتونم دوره رو ببینم؟
سلام
پس از یادگیری پایتون میتوانید دوره هنر حل مسئله را ببینید سپس بسته به نیاز خود میتوانید دورههای یادگیری ماشین با پایتون، آموزش اصول پایگاه داده و SQL Server و آموزش رایگان دادهکاوی را بگذرانید.