Commit c344d7c5 authored by Kareshaan Logeswaran's avatar Kareshaan Logeswaran

Delete rice breed recommendation system.ipynb

parent 37fc64d8
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "1bd8bf72",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import ydata_profiling as pp\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9454ef76",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>N</th>\n",
" <th>P</th>\n",
" <th>K</th>\n",
" <th>Temperature</th>\n",
" <th>Humidity</th>\n",
" <th>PH</th>\n",
" <th>Breed</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>121.6</td>\n",
" <td>28.6</td>\n",
" <td>58</td>\n",
" <td>29.82046</td>\n",
" <td>57.48837</td>\n",
" <td>5.99954</td>\n",
" <td>AT 356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>133.7</td>\n",
" <td>28.8</td>\n",
" <td>58</td>\n",
" <td>26.92841</td>\n",
" <td>54.05204</td>\n",
" <td>5.98766</td>\n",
" <td>AT 356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>134.6</td>\n",
" <td>39.9</td>\n",
" <td>56</td>\n",
" <td>25.78214</td>\n",
" <td>65.78586</td>\n",
" <td>5.96768</td>\n",
" <td>AT 356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>122.3</td>\n",
" <td>38.4</td>\n",
" <td>54</td>\n",
" <td>29.64071</td>\n",
" <td>60.17039</td>\n",
" <td>6.13613</td>\n",
" <td>AT 356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>137.5</td>\n",
" <td>27.7</td>\n",
" <td>55</td>\n",
" <td>28.16842</td>\n",
" <td>67.62975</td>\n",
" <td>5.54322</td>\n",
" <td>AT 356</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" N P K Temperature Humidity PH Breed\n",
"0 121.6 28.6 58 29.82046 57.48837 5.99954 AT 356\n",
"1 133.7 28.8 58 26.92841 54.05204 5.98766 AT 356\n",
"2 134.6 39.9 56 25.78214 65.78586 5.96768 AT 356\n",
"3 122.3 38.4 54 29.64071 60.17039 6.13613 AT 356\n",
"4 137.5 27.7 55 28.16842 67.62975 5.54322 AT 356"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"crop = pd.read_csv(\"dataset2.csv\")\n",
"crop.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "81caa498",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2118, 7)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"crop.shape"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "a473a443",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
" N 0\n",
" P 0\n",
" K 0\n",
"Temperature 0\n",
"Humidity 0\n",
"PH 0\n",
"Breed 0\n",
"dtype: int64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"crop.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "363b84c8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 2118 entries, 0 to 2117\n",
"Data columns (total 7 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 N 2118 non-null float64\n",
" 1 P 2118 non-null float64\n",
" 2 K 2118 non-null int64 \n",
" 3 Temperature 2118 non-null float64\n",
" 4 Humidity 2118 non-null float64\n",
" 5 PH 2118 non-null float64\n",
" 6 Breed 2118 non-null object \n",
"dtypes: float64(5), int64(1), object(1)\n",
"memory usage: 116.0+ KB\n"
]
}
],
"source": [
"crop.info()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "ce5e5155",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>N</th>\n",
" <th>P</th>\n",
" <th>K</th>\n",
" <th>Temperature</th>\n",
" <th>Humidity</th>\n",
" <th>PH</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>2118.000000</td>\n",
" <td>2118.000000</td>\n",
" <td>2118.000000</td>\n",
" <td>2118.000000</td>\n",
" <td>2118.000000</td>\n",
" <td>2118.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>130.932578</td>\n",
" <td>32.977715</td>\n",
" <td>68.335222</td>\n",
" <td>27.718979</td>\n",
" <td>68.678754</td>\n",
" <td>6.042608</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>10.640443</td>\n",
" <td>4.402144</td>\n",
" <td>10.047690</td>\n",
" <td>1.907387</td>\n",
" <td>7.294502</td>\n",
" <td>0.320994</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>80.600000</td>\n",
" <td>22.500000</td>\n",
" <td>40.000000</td>\n",
" <td>20.124130</td>\n",
" <td>50.231220</td>\n",
" <td>5.098720</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>124.700000</td>\n",
" <td>29.500000</td>\n",
" <td>61.000000</td>\n",
" <td>26.300860</td>\n",
" <td>63.774350</td>\n",
" <td>5.739180</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>128.900000</td>\n",
" <td>33.300000</td>\n",
" <td>69.000000</td>\n",
" <td>27.617740</td>\n",
" <td>69.306010</td>\n",
" <td>6.102150</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>136.300000</td>\n",
" <td>37.000000</td>\n",
" <td>75.000000</td>\n",
" <td>29.269780</td>\n",
" <td>74.416740</td>\n",
" <td>6.271480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>199.800000</td>\n",
" <td>39.900000</td>\n",
" <td>99.000000</td>\n",
" <td>31.900000</td>\n",
" <td>83.470400</td>\n",
" <td>7.070960</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" N P K Temperature Humidity \\\n",
"count 2118.000000 2118.000000 2118.000000 2118.000000 2118.000000 \n",
"mean 130.932578 32.977715 68.335222 27.718979 68.678754 \n",
"std 10.640443 4.402144 10.047690 1.907387 7.294502 \n",
"min 80.600000 22.500000 40.000000 20.124130 50.231220 \n",
"25% 124.700000 29.500000 61.000000 26.300860 63.774350 \n",
"50% 128.900000 33.300000 69.000000 27.617740 69.306010 \n",
"75% 136.300000 37.000000 75.000000 29.269780 74.416740 \n",
"max 199.800000 39.900000 99.000000 31.900000 83.470400 \n",
"\n",
" PH \n",
"count 2118.000000 \n",
"mean 6.042608 \n",
"std 0.320994 \n",
"min 5.098720 \n",
"25% 5.739180 \n",
"50% 6.102150 \n",
"75% 6.271480 \n",
"max 7.070960 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"crop.describe()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1dbddb19",
"metadata": {},
"outputs": [],
"source": [
"corr = crop.corr()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "652652fe",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>N</th>\n",
" <th>P</th>\n",
" <th>K</th>\n",
" <th>Temperature</th>\n",
" <th>Humidity</th>\n",
" <th>PH</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>N</th>\n",
" <td>1.000000</td>\n",
" <td>-0.174274</td>\n",
" <td>0.080950</td>\n",
" <td>0.050759</td>\n",
" <td>-0.038317</td>\n",
" <td>-0.021073</td>\n",
" </tr>\n",
" <tr>\n",
" <th>P</th>\n",
" <td>-0.174274</td>\n",
" <td>1.000000</td>\n",
" <td>0.091779</td>\n",
" <td>0.000926</td>\n",
" <td>-0.033948</td>\n",
" <td>-0.072936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>K</th>\n",
" <td>0.080950</td>\n",
" <td>0.091779</td>\n",
" <td>1.000000</td>\n",
" <td>-0.019984</td>\n",
" <td>0.048389</td>\n",
" <td>-0.023263</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Temperature</th>\n",
" <td>0.050759</td>\n",
" <td>0.000926</td>\n",
" <td>-0.019984</td>\n",
" <td>1.000000</td>\n",
" <td>0.043604</td>\n",
" <td>0.039233</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Humidity</th>\n",
" <td>-0.038317</td>\n",
" <td>-0.033948</td>\n",
" <td>0.048389</td>\n",
" <td>0.043604</td>\n",
" <td>1.000000</td>\n",
" <td>0.020901</td>\n",
" </tr>\n",
" <tr>\n",
" <th>PH</th>\n",
" <td>-0.021073</td>\n",
" <td>-0.072936</td>\n",
" <td>-0.023263</td>\n",
" <td>0.039233</td>\n",
" <td>0.020901</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" N P K Temperature Humidity PH\n",
" N 1.000000 -0.174274 0.080950 0.050759 -0.038317 -0.021073\n",
" P -0.174274 1.000000 0.091779 0.000926 -0.033948 -0.072936\n",
" K 0.080950 0.091779 1.000000 -0.019984 0.048389 -0.023263\n",
"Temperature 0.050759 0.000926 -0.019984 1.000000 0.043604 0.039233\n",
"Humidity -0.038317 -0.033948 0.048389 0.043604 1.000000 0.020901\n",
"PH -0.021073 -0.072936 -0.023263 0.039233 0.020901 1.000000"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"corr"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "a5d16d2b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.heatmap(corr,annot=True,cbar=True, cmap='coolwarm', fmt='.2g')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "9a0c74e6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"BG 250 528\n",
"suwandel 464\n",
"BG 352 396\n",
"Mottaikaruppan 390\n",
"AT 356 340\n",
"Name: Breed, dtype: int64"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"crop['Breed'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "65a62672",
"metadata": {},
"outputs": [],
"source": [
"crop_dict = {\n",
" 'BG 250': 1,\n",
" 'suwandel': 2,\n",
" 'BG 352': 3, \n",
" 'Mottaikaruppan': 4,\n",
" 'AT 356': 5 \n",
"}\n",
"crop['lable_num'] = crop ['Breed'].map(crop_dict)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "af89ec18",
"metadata": {},
"outputs": [],
"source": [
"crop.drop('Breed',axis=1,inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "3f4156ae",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>N</th>\n",
" <th>P</th>\n",
" <th>K</th>\n",
" <th>Temperature</th>\n",
" <th>Humidity</th>\n",
" <th>PH</th>\n",
" <th>lable_num</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>121.6</td>\n",
" <td>28.6</td>\n",
" <td>58</td>\n",
" <td>29.82046</td>\n",
" <td>57.48837</td>\n",
" <td>5.99954</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>133.7</td>\n",
" <td>28.8</td>\n",
" <td>58</td>\n",
" <td>26.92841</td>\n",
" <td>54.05204</td>\n",
" <td>5.98766</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>134.6</td>\n",
" <td>39.9</td>\n",
" <td>56</td>\n",
" <td>25.78214</td>\n",
" <td>65.78586</td>\n",
" <td>5.96768</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>122.3</td>\n",
" <td>38.4</td>\n",
" <td>54</td>\n",
" <td>29.64071</td>\n",
" <td>60.17039</td>\n",
" <td>6.13613</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>137.5</td>\n",
" <td>27.7</td>\n",
" <td>55</td>\n",
" <td>28.16842</td>\n",
" <td>67.62975</td>\n",
" <td>5.54322</td>\n",
" <td>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" N P K Temperature Humidity PH lable_num\n",
"0 121.6 28.6 58 29.82046 57.48837 5.99954 5\n",
"1 133.7 28.8 58 26.92841 54.05204 5.98766 5\n",
"2 134.6 39.9 56 25.78214 65.78586 5.96768 5\n",
"3 122.3 38.4 54 29.64071 60.17039 6.13613 5\n",
"4 137.5 27.7 55 28.16842 67.62975 5.54322 5"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"crop.head()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "c3315c6e",
"metadata": {},
"outputs": [],
"source": [
"# Split the dataset into features and labels\n",
"X = crop.iloc[:, :-1]\n",
"y = crop.iloc[:, -1]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "d4d1b494",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"# Split the data into training and testing sets\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "be836c3b",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import MinMaxScaler\n",
"scaler = MinMaxScaler()\n",
"X_train_scaled = scaler.fit_transform(X_train)\n",
"X_test_scaled = scaler.transform(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "489976aa",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import StandardScaler\n",
"scaler = StandardScaler()\n",
"X_train_scaled = scaler.fit_transform(X_train)\n",
"X_test_scaled = scaler.transform(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "30ecc6b4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Linear Discriminant Analysis:\n",
"Accuracy: 0.3412\n",
"Logistic Regression:\n",
"Accuracy: 0.3208\n",
"Naive Bayes:\n",
"Accuracy: 0.3726\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\KAREESHAN\\anaconda3\\lib\\site-packages\\sklearn\\linear_model\\_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
"STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
"\n",
"Increase the number of iterations (max_iter) or scale the data as shown in:\n",
" https://scikit-learn.org/stable/modules/preprocessing.html\n",
"Please also refer to the documentation for alternative solver options:\n",
" https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
" n_iter_i = _check_optimize_result(\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Support Vector Machine:\n",
"Accuracy: 0.3538\n",
"K-Nearest Neighbors:\n",
"Accuracy: 0.4182\n",
"Decision Tree:\n",
"Accuracy: 0.7925\n",
"Random Forest:\n",
"Accuracy: 0.8113\n",
"Bagging:\n",
"Accuracy: 0.7987\n",
"AdaBoost:\n",
"Accuracy: 0.4072\n",
"Gradient Boosting:\n",
"Accuracy: 0.5959\n",
"Extra Trees:\n",
"Accuracy: 0.7673\n",
"0.8018867924528302\n"
]
}
],
"source": [
"from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n",
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.naive_bayes import GaussianNB\n",
"from sklearn.svm import SVC\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.tree import ExtraTreeClassifier\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.ensemble import BaggingClassifier\n",
"from sklearn.ensemble import GradientBoostingClassifier\n",
"from sklearn.ensemble import AdaBoostClassifier\n",
"\n",
"# create instances of all models\n",
"models = {\n",
" 'Linear Discriminant Analysis': LinearDiscriminantAnalysis(),\n",
" 'Logistic Regression': LogisticRegression(),\n",
" 'Naive Bayes': GaussianNB(),\n",
" 'Support Vector Machine': SVC(),\n",
" 'K-Nearest Neighbors': KNeighborsClassifier(),\n",
" 'Decision Tree': DecisionTreeClassifier(),\n",
" 'Random Forest': RandomForestClassifier(),\n",
" 'Bagging': BaggingClassifier(),\n",
" 'AdaBoost': AdaBoostClassifier(),\n",
" 'Gradient Boosting': GradientBoostingClassifier(),\n",
" 'Extra Trees': ExtraTreeClassifier(),\n",
"}\n",
"\n",
"from sklearn.metrics import accuracy_score\n",
"for name, model in models.items():\n",
" model.fit(X_train, y_train)\n",
" y_pred = model.predict(X_test)\n",
" acc = accuracy_score(y_test, y_pred)\n",
" print(f'{name}:\\nAccuracy: {acc:.4f}')\n",
" \n",
"# Selecting decistion tree model:\n",
"rdf = RandomForestClassifier()\n",
"rdf.fit(X_train,y_train)\n",
"y_pred = rdf.predict(X_test)\n",
"print(accuracy_score(y_test,y_pred))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "9524d6f5",
"metadata": {},
"outputs": [],
"source": [
"# Define function to make predictions\n",
"def predict_crop(N, P, K, temperature, humidity, pH ):\n",
" # Create a numpy array with the input values\n",
" input_values = np.array([[N, P, K, temperature, humidity, pH ]])\n",
" \n",
" # Use the model to make a prediction\n",
" prediction = rdf.predict(input_values)\n",
" \n",
" # Return the predicted crop label\n",
" return prediction[0]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "009234d0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"BG 352 is the best rice breed to be cultivated right there\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\KAREESHAN\\anaconda3\\lib\\site-packages\\sklearn\\base.py:450: UserWarning: X does not have valid feature names, but RandomForestClassifier was fitted with feature names\n",
" warnings.warn(\n"
]
}
],
"source": [
"N = 21\n",
"P = 26\n",
"K = 27\n",
"tem = 27.003155\n",
"humidity = 47.675254\n",
"ph = 5.699587\n",
"\n",
"\n",
"pred = predict_crop(N, P, K, tem, humidity, ph )\n",
"\n",
"if pred == 1:\n",
" print(\"BG 250 is the best rice breed to be cultivated right there\")\n",
"elif pred == 2:\n",
" print(\"suwendal is the best rice breed to be cultivated right there\")\n",
"elif pred == 3:\n",
" print(\"BG 352 is the best rice breed to be cultivated right there\")\n",
"elif pred == 4:\n",
" print(\"Mottaikaruppan is the best rice breed to be cultivated right there\")\n",
"elif pred == 5:\n",
" print(\"AT 356 is the best rice breed to be cultivated right there\")\n",
"else:\n",
" print(\"Sorry, we could not determine the best crop to be cultivated with the provided data.\")"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "9655f7a8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>N</th>\n",
" <th>P</th>\n",
" <th>K</th>\n",
" <th>Temperature</th>\n",
" <th>Humidity</th>\n",
" <th>PH</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>518</th>\n",
" <td>140.9</td>\n",
" <td>26.8</td>\n",
" <td>62</td>\n",
" <td>27.70952</td>\n",
" <td>62.68478</td>\n",
" <td>5.56446</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1630</th>\n",
" <td>138.8</td>\n",
" <td>28.1</td>\n",
" <td>56</td>\n",
" <td>28.07664</td>\n",
" <td>73.98864</td>\n",
" <td>5.68115</td>\n",
" </tr>\n",
" <tr>\n",
" <th>334</th>\n",
" <td>137.0</td>\n",
" <td>39.4</td>\n",
" <td>61</td>\n",
" <td>29.13211</td>\n",
" <td>66.62532</td>\n",
" <td>5.56140</td>\n",
" </tr>\n",
" <tr>\n",
" <th>974</th>\n",
" <td>124.4</td>\n",
" <td>30.4</td>\n",
" <td>67</td>\n",
" <td>25.10783</td>\n",
" <td>79.61501</td>\n",
" <td>5.50248</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1284</th>\n",
" <td>126.9</td>\n",
" <td>27.2</td>\n",
" <td>55</td>\n",
" <td>27.50759</td>\n",
" <td>70.99194</td>\n",
" <td>5.65401</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1638</th>\n",
" <td>126.5</td>\n",
" <td>29.4</td>\n",
" <td>57</td>\n",
" <td>27.37666</td>\n",
" <td>63.77435</td>\n",
" <td>6.40676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1095</th>\n",
" <td>124.6</td>\n",
" <td>38.2</td>\n",
" <td>63</td>\n",
" <td>26.21121</td>\n",
" <td>70.73508</td>\n",
" <td>5.56764</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1130</th>\n",
" <td>133.7</td>\n",
" <td>37.0</td>\n",
" <td>90</td>\n",
" <td>25.90775</td>\n",
" <td>70.39260</td>\n",
" <td>5.70350</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1294</th>\n",
" <td>121.5</td>\n",
" <td>38.4</td>\n",
" <td>93</td>\n",
" <td>26.44103</td>\n",
" <td>77.67030</td>\n",
" <td>6.32038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>860</th>\n",
" <td>129.9</td>\n",
" <td>34.7</td>\n",
" <td>69</td>\n",
" <td>28.81088</td>\n",
" <td>52.62722</td>\n",
" <td>5.79221</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1482 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" N P K Temperature Humidity PH\n",
"518 140.9 26.8 62 27.70952 62.68478 5.56446\n",
"1630 138.8 28.1 56 28.07664 73.98864 5.68115\n",
"334 137.0 39.4 61 29.13211 66.62532 5.56140\n",
"974 124.4 30.4 67 25.10783 79.61501 5.50248\n",
"1284 126.9 27.2 55 27.50759 70.99194 5.65401\n",
"... ... ... ... ... ... ...\n",
"1638 126.5 29.4 57 27.37666 63.77435 6.40676\n",
"1095 124.6 38.2 63 26.21121 70.73508 5.56764\n",
"1130 133.7 37.0 90 25.90775 70.39260 5.70350\n",
"1294 121.5 38.4 93 26.44103 77.67030 6.32038\n",
"860 129.9 34.7 69 28.81088 52.62722 5.79221\n",
"\n",
"[1482 rows x 6 columns]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "a8ed0189",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.ensemble import RandomForestClassifier\n",
"import pickle\n",
"\n",
"rfc = RandomForestClassifier()\n",
"rfc.fit(X_train, y_train)\n",
"pickle.dump(rfc, open('model.pkl', 'wb'))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "01f07759",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment