{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### ডেটা ভিজ্যুয়ালাইজেশন\n", "গিটহাব লিংক https://github.com/raqueeb/ml-python/blob/master/seaborn.ipynb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "যেকোন মেশিন লার্নিং মডেল তৈরির আগে ডেটাকে হাতে নিয়ে দেখাটা একটা ভালো অভ্যেস। প্রথমতঃ ডাটার ভেতরে আমাদের উত্তরের ধারণাটা আছে কিনা সেটা জানলে আমাদের কষ্ট কমে যাবে। দ্বিতীয়তঃ এই সমস্যাটা আসলে মেশিন লার্নিং সমস্যা কি না সেটা জানলে আমাদের এই রাস্তায় হাটতে হয় না। একটা জিনিস দেখা গেছে - যখন আমরা আমাদের ডাটাকে দুটো (তিনটাও হতে পারে) এক্সিসে প্লট করি - তখন একটা মজার ব্যাপার ঘটে। মানুষ বুঝতে পারে ভেতরের ঘটনা।\n", "\n", "পৃথিবী কিন্তু প্যাটার্নে ভর্তি। আশেপাশে তাকান। প্রাকৃতিক হাজারো জিনিসের প্যাটার্ন, গাছ, মাটির স্তর, সূর্যের আলো, পানির ঢেউ দেখলেই বোঝা যায় অনেক কিছু। ফিজিক্স, ম্যাথ তো প্যাটার্ন ভর্তি। এই প্যাটার্নের ভেতর থেকে অসামঞ্জস্যতা বা তার কিছুটা 'পিকিউলারিটিজ' বের করাতে ডেটা প্লট একটা দরকারী জিনিস। কেমন হয়, আমাদের কিছু আইরিস ডেটাকে মাপামাপি করা হয়েছিলো ইঞ্চিতে যেখানে সেটা হবার কথা সেন্টিমিটারে? সেটাও ধরা পড়বে এই ডেটা ভিজ্যুয়ালাইজেশনে। এটা ঠিক, আমাদের প্রতিদিনের কাজে এই ঝামেলা অনেকটাই কমন। \n", "\n", "এ ব্যাপারে আমাদের মাথা অসাধারণ ভালো। ডাটার প্লটিং থেকে প্যাটার্ন বের করতে ওস্তাদ। খালি চোখেই অনেক কমপ্লিকেটেড ছবি থেকে এর ভেতরের মেসেজ নিয়ে আসতে পারি আমরা। পাইথনে \"ম্যাটপ্লটলিব\" হচ্ছে ভিজ্যুয়ালাইজেশনের ডিফ্যাক্টো স্ট্যান্ডার্ড, তবে স্ট্যাটিসটিকাল ভিজ্যুয়ালাইজেশন টুল হিসেবে \"সীবোর্ন\" মাথা খারাপ করে দেবার মতো। এটা আসেও স্ট্যান্ডার্ড সব মেশিন লার্নিং প্যাকেজের সাথে। আর দেরি কেন?" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import seaborn as sns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "আইরিস ডেটাসেট এতোই জনপ্রিয় যে এর একটা ইনস্ট্যান্স দেয়া হয়েছে সিবোর্ণে। ব্যবহার করি sns.load_dataset('iris') মেথডকে। " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "iris = sns.load_dataset('iris')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "পৃথিবীর সবকিছুই আপেক্ষিক। একটার রেফারেন্সে আরেকটা আপেক্ষিক। ডেটা নিয়ে কাজ করতে গেলে প্রতিটা জিনিসের সাথে প্রতিটার একটা সম্পর্ক থাকে। আপনারা সামনে ডেটা নিয়ে কাজ করতে গেলে বুঝবেন কিভাবে সামান্য ‘কোরিলেশন’ একে অপরের সাথে জুড়ে আছে। সেটার হিটম্যাপ দেখি একটা। যেহেতু ডেটাসেট খুব বড় নয়, সেকারণে স্ট্যান্ডার্ড ‘কোরিলেশন’ কোএফিসিয়েন্ট বের করতে পারি প্রতিটা অ্যাট্রিবিউটের জোড়াদের সাথে। এটাকে আমরা বলি পিয়ারসন এর \"আর\"। সেকারণে corr() মেথড এর ব্যবহার। " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "correlation = iris.corr()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | sepal_length | \n", "sepal_width | \n", "petal_length | \n", "petal_width | \n", "
---|---|---|---|---|
sepal_length | \n", "1.000000 | \n", "-0.117570 | \n", "0.871754 | \n", "0.817941 | \n", "
sepal_width | \n", "-0.117570 | \n", "1.000000 | \n", "-0.428440 | \n", "-0.366126 | \n", "
petal_length | \n", "0.871754 | \n", "-0.428440 | \n", "1.000000 | \n", "0.962865 | \n", "
petal_width | \n", "0.817941 | \n", "-0.366126 | \n", "0.962865 | \n", "1.000000 | \n", "