File size: 1,493 Bytes
a084ccd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
45
46
47
48
49
import pandas as pd
import numpy as np
import gradio as gr
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier


data = pd.read_excel('crop.xlsx')
le=LabelEncoder()
data['CROP_EN']=le.fit_transform(data['CROP'])
x=data.iloc[:,:-2]
y=data['CROP_EN']
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0)
model=KNeighborsClassifier(n_neighbors=3)
model.fit(x_train,y_train)
y_pred=model.predict(x_test)
res = [
    'apple', 'banana', 'blackgram', 'chickpea', 'coconut', 'coffee', 'cotton',
    'grapes', 'jute', 'kidneybeans', 'lentil', 'maize', 'mango', 'mothbeans',
    'mungbean', 'muskmelon', 'orange', 'papaya', 'pigeonpeas', 'pomegranate',
    'rice', 'watermelon'
]
def predict(n,p,k,temp,hum,ph,rain):
    pred = model.predict([[n,p,k,temp,hum,ph,rain]])
    return res[pred[0]]

interface = gr.Interface(
    fn=predict,
    inputs=[
        gr.Number(label="Nitrogen"),
        gr.Number(label="PHOSPHORUS"),
        gr.Number(label="Potassium"),
        gr.Number(label="Temperature"),
        gr.Number(label="Humidity"),
        gr.Number(label="Soil PH"),
        gr.Number(label="Rainfall"),
    ],
    outputs=[
        gr.Textbox(label="Predicted Crop"),
    ],
    title="Crop Prediction Using machine Learning",
    # description="This interface takes some input and generates 7 numerical outputs along with one text output."
)


interface.launch()