Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
450 changes: 450 additions & 0 deletions kaggle/Iris_Species/1st-model.ipynb

Large diffs are not rendered by default.

368 changes: 368 additions & 0 deletions kaggle/Iris_Species/cross-validation.ipynb

Large diffs are not rendered by default.

182 changes: 182 additions & 0 deletions kaggle/Iris_Species/dataframe.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Age</th>\n",
" <th>Location</th>\n",
" <th>Name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>24</td>\n",
" <td>রাজশাহী</td>\n",
" <td>জসিম</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>13</td>\n",
" <td>ঢাকা</td>\n",
" <td>করিম</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>53</td>\n",
" <td>রংপুর</td>\n",
" <td>মিতা</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>33</td>\n",
" <td>কুষ্টিয়া</td>\n",
" <td>অন্তরা</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age Location Name\n",
"0 24 রাজশাহী জসিম\n",
"1 13 ঢাকা করিম\n",
"2 53 রংপুর মিতা\n",
"3 33 কুষ্টিয়া অন্তরা"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"\n",
"# create a simple dataset of people\n",
"data = {'Name': [\"জসিম\", \"করিম\", \"মিতা\", \"অন্তরা\"],\n",
" 'Location' : [\"রাজশাহী\", \"ঢাকা\", \"রংপুর\", \"কুষ্টিয়া\"],\n",
" 'Age' : [24, 13, 53, 33]\n",
" }\n",
"\n",
"frame = pd.DataFrame(data)\n",
"# ডেটাফ্রেম দেখলেই আপনার মন ভালো হয়ে যাবে, একদম এক্সেল \n",
"display(frame)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"কোয়েরি চালাই একটু "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Age</th>\n",
" <th>Location</th>\n",
" <th>Name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>53</td>\n",
" <td>রংপুর</td>\n",
" <td>মিতা</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>33</td>\n",
" <td>কুষ্টিয়া</td>\n",
" <td>অন্তরা</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age Location Name\n",
"2 53 রংপুর মিতা\n",
"3 33 কুষ্টিয়া অন্তরা"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(frame[frame.Age > 30])"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
202 changes: 202 additions & 0 deletions kaggle/Iris_Species/dimension_feature.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "dimension-feature.ipynb",
"version": "0.3.2",
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/raqueeb/ml-python/blob/master/dimension_feature.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"id": "JUpH47tG97Kb",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# ডাইমেনশনালিটি রিডাকশন, ফীচার সিলেকশন, ফীচার ইম্পর্ট্যান্স\n",
"\n",
"রিয়েল ওয়ার্ল্ড সিনারিওতে যে কোন মেশিন লার্নিং সমস্যা আরো বেশি ঝামেলায় পড়ে - যখন তার ফিচার সংখ্যা অনেক হয়ে যায়। ফিচার সংখ্যা অনেক হওয়া সমস্যা নয়, সমস্যা হচ্ছে ফিচারগুলোর ভেতরে সব ফিচার কিন্তু মডেলের পারফরম্যান্স ভালো করে না। এছাড়াও এতো এতো ফিচার নিয়ে মডেলকে ট্রেনিং করানোটাও অনেক সময় সাপেক্ষ ব্যাপার। আবার ট্রেনিং করালাম, কিন্তু আউটকাম যা আশা করেছিলাম সেটা হলো না, তখন পুরো মডেলটাই বিপদে পড়ে। এই সমস্যাটা নাম হচ্ছে “দ্য কার্স অফ ডাইমেনশনালিটি।” অর্থাৎ বেশি ডাইমেনশনের বিপদ। সেজন্য দরকার ওই ফীচারগুলো, যা মডেল পারফরম্যান্সে সবচেয়ে বেশি ‘কন্ট্রিবিউট’ করে। \n",
"\n",
"এই সমস্যা থেকে উদ্ধার পাবার উপায় কি? সোজা হিসেবে বলা যায় ফিচার সিলেকশন এবং ফিচার ইম্পর্টেন্স। আমি অন্য গল্পে গেলাম না, কারণ এটা একটা বেসিক ধারণার বই। আমরা যদি দরকারি ফিচারগুলোকে ঠিকমতো সিলেক্ট করতে পারি তাদের ইম্পর্টেন্স অনুযায়ী, তাহলে কিন্তু ঝামেলা অনেকটাই কমে যায়। এই যে ধরুন, আইরিস ডেটাসেটে চারটা ফিচার। (রিয়েল ওয়ার্ল্ড সমস্যায় মিলিয়ন ফিচার নিয়ে কাজ করা এখন ‘কমনপ্লেস’ হয়ে যাচ্ছে)। এই চারটা ফিচারের মধ্যে কোন ফিচারগুলো আসলে আমাদের মডেলকে ভালো পারফর্মেন্স বুষ্ট দেবে, সেটা একটু দেখে আসি। \n",
"\n",
"মনে আছে, ডিসিশন ট্রি’র ছবিটার কথা? ইম্পরট্যান্ট ফীচারগুলো কিন্তু ডিসিশন ট্রি’র রুট নোডের আশপাশেই থাকে। ডেপ্থ ০, ১ এবং ২তে পেটাল দৈর্ঘ্যের জয়জয়কার। ডেপ্থগুলোকে গড় করলেই বোঝা যাবে। এর পাশাপাশি feature_importances_অ্যাট্রিবিউটের এর কাজ দেখে আসি। \n"
]
},
{
"metadata": {
"id": "lrdRtIsFE99V",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "5987f195-22c2-4749-c2ed-286316a9adc6"
},
"cell_type": "code",
"source": [
"from sklearn.datasets import load_iris\n",
"iris = load_iris()\n",
"X, y = iris.data, iris.target\n",
"X.shape"
],
"execution_count": 1,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(150, 4)"
]
},
"metadata": {
"tags": []
},
"execution_count": 1
}
]
},
{
"metadata": {
"id": "dpVHgr88GqgG",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "56f2bf03-b719-4a67-b42e-c89aecd440fe"
},
"cell_type": "code",
"source": [
"from sklearn.tree import DecisionTreeClassifier\n",
"tree_clf = DecisionTreeClassifier(max_depth=2, random_state=42)\n",
"tree_clf.fit(X, y)\n",
"tree_clf.feature_importances_ "
],
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([0. , 0. , 0.56199095, 0.43800905])"
]
},
"metadata": {
"tags": []
},
"execution_count": 2
}
]
},
{
"metadata": {
"id": "FkREKL0ZICu_",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"বোঝা যাচ্ছে চারটার মধ্যে দুটো ইম্পর্ট্যান্ট। জানা যাবে কোন দুটো?"
]
},
{
"metadata": {
"id": "G9h12FEAIkYL",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 85
},
"outputId": "bec34dbe-ddce-4d37-999c-c99e28ede257"
},
"cell_type": "code",
"source": [
"for name, score in zip(iris[\"feature_names\"], tree_clf.feature_importances_):\n",
" print(name, score)"
],
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": [
"sepal length (cm) 0.0\n",
"sepal width (cm) 0.0\n",
"petal length (cm) 0.5619909502262443\n",
"petal width (cm) 0.4380090497737556\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "uIV6_W3uIvDI",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"শেষের দুটো। এর মধ্যে পেটাল দৈর্ঘ্যের মান বেশি। "
]
},
{
"metadata": {
"id": "bTdaApw0HuFR",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "4a391bdd-a3b3-4e88-ea2a-5a3f451a493f"
},
"cell_type": "code",
"source": [
"from sklearn.feature_selection import SelectFromModel\n",
"model = SelectFromModel(tree_clf, prefit=True)\n",
"X_new = model.transform(X)\n",
"X_new.shape "
],
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(150, 2)"
]
},
"metadata": {
"tags": []
},
"execution_count": 6
}
]
},
{
"metadata": {
"id": "MaXc85SeJdw8",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"শেষমেশ চারটার মধ্যে দুটোই আমাদের দরকারি ফিচার। সাধারণতঃ চারটা ফিচার থেকে কমাইনা আমরা। পরীক্ষা করে দেখলাম। "
]
}
]
}
Loading