File size: 1,062 Bytes
ca51891
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

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'))