|
|
|
import pandas as pd |
|
import numpy as np |
|
import matplotlib.pyplot as plt |
|
import seaborn as sns |
|
import warnings |
|
import pickle |
|
warnings.filterwarnings('ignore') |
|
|
|
def Crop_yel(): |
|
data = pd.read_csv('crop_yield.csv') |
|
|
|
columns = ['Crop', 'Season', 'State'] |
|
from sklearn.preprocessing import LabelEncoder |
|
encoder = LabelEncoder() |
|
for col in columns: |
|
data[col] = encoder.fit_transform(data[col]) |
|
|
|
X = data.iloc[:,:-1] |
|
y = data.iloc[:,-1] |
|
|
|
from sklearn.model_selection import train_test_split |
|
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state= 42, test_size= 0.2) |
|
|
|
from sklearn.ensemble import ExtraTreesRegressor |
|
from sklearn.metrics import r2_score |
|
|
|
model = ExtraTreesRegressor( |
|
n_estimators=200, |
|
criterion='squared_error', |
|
max_depth=20, |
|
min_samples_split=2, |
|
min_samples_leaf=1, |
|
max_features=5, |
|
bootstrap=True, |
|
random_state=42 |
|
) |
|
|
|
|
|
model.fit(X_train, y_train) |
|
pickle.dump(model,open('crop_yield_model.pkl','wb')) |
|
|
|
|
|
|