Project
Project
INTRODUCTION
1
analyzes the likelihood of crop compatibility, and naive Bayes assesses the chances of perfect
crop yield. This cohesive methodology helps farmers in optimizing resources, reducing
dangers, and upgrading yield, advancing productive and maintainable agricultural practices.
The aim of this project is to develop an intelligent Crop Management System that
leverages machine learning techniques to provide accurate crop recommendations, improve
soil health analysis, and assist farmers in making data-driven decisions for sustainable
agriculture. This system is designed to enhance productivity, reduce resource wastage, and
support precision agriculture practices through user-friendly interfaces and real-time insights.
This project lies in the intersection of the Agriculture and Artificial Intelligence (AI)
domains, with a focus on Machine Learning (ML). It integrates data science techniques to
solve real-world agricultural problems, contributing to the field of AgriTech. The system
aims to support Precision Agriculture, which utilizes technology and data analysis to
optimize crop yield and farming efficiency.
2
1.4 Scope of the Project
1.5 Methodology
3
CHAPTER 2
LITERATURE REVIEW
Meet Mehta et al.[4] An Innovative Model For Soil Testing With Crop
Recommendation System,The soil testing labs regularly sustain that from insufficient
foundation and over workloads, causing delays that will prepare farmers from planting crops
at the correct time. Whereas private labs offer faster management,but their high costs make
them too expensive for several farmers.Dr Gayathri B et al.[5] Machine Learning based Crop
Suitability Prediction and Fertiliser Recommendation System, Researchers previously
explored traditional methods relying on farmers experience, which often led to inaccurate
predictions. With advancements in technology, machine learning algorithms have been
applied to analyze historical yield data and soil properties to improve estimated accuracy.
Studies have shown that Random Forest exceeded other models in crop prediction due to its
strength in handling large datasets. Similarly, K-means clustering has been effectively used to
classify soil nutrients and recommend suitable fertilizers. D.N.V.S.L.S. Indira et al.[6] A
Machine Learning based Recommendation System to the Farmer A few examinations have
been conducted to progress agricultural efficiency utilizing machine learning methods.
Analysts already depended on routine strategies, but these approaches frequently led to
wrong expectations and wasteful aspects. Machine learning models such as XGBoost, and
4
K-means clustering were utilized to predict cut reasonableness, prescribe fertilizers, and
differentiate plant illnesses.
Dr. J. Avanija et al.[9] Crop Advisory System using Ant Lion Optimization and
Decision Tree Algorithm, Analysts have utilized decision tree calculations, support vector
machines to analyze soil properties, climatic conditions, and asset accessibility for exact crop
determination. Nature-inspired calculations, such as Antlion Optimization (ALO), have been
broadly considered for their efficiency in improving complicated rural parameters. CH.
Rakesh et al.[10] Crop Advisory and Prediction System,some of the considerations have
examined the role of machine learning and agriculture in improving crop choice and making
developments in rural efficiency. Analysts have utilized calculations such as k-Nearest
Neighbors (KNN), choice trees, and profound learning models to analyze soil conditions,
climate designs, and resource accessibility.
5
CHAPTER 3
PROJECT DESCRIPTION
In the traditional agricultural setup, farmers often rely on their experience, regional
knowledge, and advice from local agricultural officers to make decisions about crop selection
and cultivation practices. While this approach may work in certain cases, it lacks scientific
accuracy and is not scalable for modern precision farming. Furthermore, existing systems that
offer crop recommendations are usually rule-based or static, providing generic suggestions
without analyzing real-time soil or environmental data. These systems are not adaptive and
cannot handle complex interactions among various parameters such as soil nutrients,
temperature, rainfall, and pH. Additionally, many of them are inaccessible to small and
marginal farmers due to language barriers, lack of digital literacy, or the absence of
region-specific recommendations.
6
3.2.1 Advantages
The proposed system offers several advantages over the existing methods. It ensures
high accuracy in crop recommendation by leveraging supervised machine learning models
that can generalize well across varied input conditions. It enhances resource optimization by
advising crops that are well-suited for the current soil and weather conditions, thereby
reducing fertilizer misuse and water consumption. The intuitive interface makes it accessible
to farmers, agricultural officers, and students alike. Moreover, the system is scalable and
flexible, allowing additional functionalities such as pest and disease detection, fertilizer
prediction, and region-specific advisories in the future. Most importantly, it shifts the farming
paradigm from experience-based to data-driven decision-making, ensuring long-term
sustainability and food security.
From a technical standpoint, the project is highly feasible. The machine learning
models can be efficiently trained using standard Python libraries such as Scikit-learn,
TensorFlow, and Pandas. The dataset is preprocessed and cleaned to ensure high-quality
inputs to the model. The final trained model is converted to a lightweight format using
TensorFlow Lite for easy deployment on Android platforms or embedded systems.
Integration with a Flask-based backend allows for a smooth and responsive user experience.
The technologies used are well-documented and supported by active developer communities,
ensuring ease of maintenance and updates.
7
3.3.3 Social Feasibility
The project has strong social feasibility, especially in agrarian societies where small
and marginal farmers face challenges in accessing expert agricultural advice. By providing
localized, personalized crop suggestions, the system empowers farmers with scientific
knowledge, bridging the gap between traditional practices and modern technology.
Additionally, the simplicity of the interface ensures that users with limited technical
knowledge can still benefit from the system. It supports regional language integration in
future iterations, making it even more socially inclusive. Overall, the system promotes
sustainable agriculture, enhances livelihood opportunities, and supports national food security
goals.
To run and test the system efficiently, a computer or laptop with a minimum Intel i5
processor, 4 GB RAM, and at least 100 GB of storage is required. A basic display screen (13
inches or more) is sufficient for the web interface. For mobile deployment, a standard
Android smartphone with an internet connection and basic processing capabilities is enough
to run the application. The lightweight model ensures that the system can function even on
low-end devices, making it accessible to a wide range of users.
8
3.4.3 Standards and Policies
The system is designed following best practices in software development and ethical
use of artificial intelligence. It complies with data privacy standards and avoids storing
personally identifiable information (PII). The system encourages open-source development,
allowing others to contribute and improve the tool over time. It also aligns with sustainable
agriculture standards promoted by organizations such as the Food and Agriculture
Organization (FAO) of the United Nations. By adhering to these policies, the project ensures
ethical deployment and responsible AI use in agriculture.
9
CHAPTER 4
PROPOSED METHODOLOGY
10
4.2 Module Description
4.2.1. Dataset Collection:
The favorable outcome of a machine learning project is based on the data's quality
and amount. For this project, we utilize multiple datasets relevant to agriculture and crop
prediction taken from open source Kaggle, each containing essential attributes for effective
recommendations and predictions. The Crop Recommendation Dataset consists of soil
nutrients like Nitrogen (N), Phosphorous (P), Potassium (K) and environmental factors like
temperature, humidity, pH, and rainfall and the crop name which helps in recommending the
most suitable crop for a given condition. The Fertilizer Recommendation Dataset includes
temperature, humidity, soil moisture, soil type, crop type, nitrogen, phosphorus, potassium
levels and fertilizer name which helps in recommendation of the most suitable fertilizer for
the given conditions . The Yield Prediction Dataset contains state name, district name, crop
year, season, crop type, area, and production, which is crucial for predicting crop yields for
the given conditions . The Crop Prediction Dataset includes state, district, season, and crop
type, assisting in identifying the likely crops grown in a specific region. The dataset
undergoes preprocessing to handle missing values, normalize features, and standardize labels,
ensuring high accuracy in model predictions.
11
Fig. 4.2: Model selection
The Crop recommendation model is trained with the algorithm Random forest
classifier, an ensemble learning algorithm to recommend the crop based on the soil properties
like Nitrogen (N), Phosphorous (P), Potassium (K), Temperature(TEMP), Humidity(HUM),
pH level (pH), Rainfall(RF). It operates in two modes: training and predictions. In the
training phase , it reads soil properties and weather conditions from the dataset given, the
model trains a Random forest model with 10 decision trees and saves it as ‘crop_model.pkl’
using pickle. In the prediction phase the user provides input values, which are processed and
fed into a trained model to recommend the most suitable crop.
𝐶𝑀𝑡(𝑥) = 𝑓(𝑁, 𝑃, 𝐾, 𝑇𝐸𝑀𝑃, 𝐻𝑈𝑀, 𝑝𝐻, 𝑅𝐹) 𝐸𝑞𝑛(1)
Substituting the values in the equation 1, N as 90, P as 48, K as 52, TEMP as 22, HUM as 85,
pH as 6.5 and RF as 225.
12
𝑦 = 𝑚𝑜𝑑𝑒{𝐶𝑀1(𝑥), 𝐶𝑀2(𝑥), 𝐶𝑀3(𝑥), 𝐶𝑀4(𝑥), 𝐶𝑀5(𝑥)} 𝐸𝑞𝑛(2)
Rice appears 3 times; Maize appears 1 time; Wheat appears 1 time. Now using the Ensemble
learning approach the most repeated outcome from the decision trees will be a recommended
crop. Equation 3 is a recommended crop.
𝑦 = 𝑅𝑖𝑐𝑒 𝐸𝑞𝑛(3)
Where: 𝐶𝑀𝑡(𝑥) is the predicted crop from the t-th decision tree
The Fertilizer recommendation model is trained with the algorithm Random forest
classifier, an ensemble learning algorithm to recommend the Fertilizer based on the soil
properties. It trains a model using data Nitrogen (N), Phosphorous (P), Potassium (K),
Temperature(TEMP), Soil type(ST), Soil moisture(SM), Crop(C) and Humidity(HUM) where
Categorical values are encoded using label encoding. The dataset is split into training and
testing. the model trains a Random forest model with 10 decision trees and saves it as
‘crop_model.pkl’ using pickle the trained model is saved for future use if the model or
encoders are missing, it automatically retrains the model. When a user gives input values, the
python script validates and encodes them, then predicts the ideal fertilizer utilizing the trained
model. In the prediction phase the user provides eight input values, which are processed and
fed into by a trained model to predict the most suitable fertilizer.
Substituting the values in the Equation 4, N as 30, P as 5, K as 6, TEMP as 28, HUM as 54,
SM as 41, ST as Loamy and CT as paddy.
13
𝑦 = 𝑚𝑜𝑑𝑒{𝐶𝑀1(𝑥), 𝐶𝑀2(𝑥), 𝐶𝑀3(𝑥), 𝐶𝑀4(𝑥), 𝐶𝑀5(𝑥)}
𝐸𝑞𝑛(5)
Urea appears 3 times; DAP appears 1 time; MOP appears 1 time, Now using the Ensemble
learning approach the most repeated outcome from the decision trees will be a recommended
crop. Equation 6 is a recommended fertilizer.
𝑦 = 𝑈𝑟𝑒𝑎 𝐸𝑞𝑛(6)
Where: 𝐶𝑀𝑡(𝑥) is the recommended fertilizer from the t-th decision tree
The Yield Prediction model is trained with a random forest regression algorithm to
predict the crop yield (production) using various input features. It begins by loading the
dataset and recognizing categorical columns like State name, District name, Season, Crop
name, and Crop year. These categorical features are changed over into numerical values
utilizing One Hot Encoding, ensuring the model can process them. The dataset is splitted
into two parts, training (X) and testing (y), where production is the target variable. The
dataset is divided into 80% training and 20% testing sets utilizing train_test_split(). A random
forest regression model with 100 decision trees (n_estimators=100) is trained on the training
data (X_train, y_train), learning the relationship between input features and edit crop
production. After training, the trained model is saved as crop_production_model.pkl and one
hot encoder is saved as label_encoders_yield.pkl are saved using joblib.dump() for future
predictions. For prediction, the script takes six command-line inputs: state, district, crop year,
season, crop and area. It verifies the input count and loads the trained model and One Hot
Encoder. The categorical inputs are transformed using One Hot Encoding and the numerical
feature (Area) is added. The script ensures the input features align with those used during
training by reindexing the DataFrame. Finally, the trained model predicts the crop yield and
the yield is shown as the anticipated surrender in quintal. This structured approach guarantees
precise data encoding and dependable yield prediction for different input conditions.
𝐸𝑞𝑛(7)
14
Substituting the values in the Equation 7, State as Andhra Pradesh, District as GUNTUR,
year as 2026, season as Rabi, Crop as Rice, Area as 250.
= 𝑦𝑖𝑒𝑙𝑑 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛(𝑦)
Decision tree 1, 𝐶𝑀1(𝑥)=220.1 quintal
228.4 appear twice, 220.1 appear once, 230.4 appear once,225.6 appear once Now using the
Ensemble learning approach the most repeated outcome from the decision trees will be a
recommended crop. Equation 9 is the predicted yield of the crop in quintals
Where: 𝐶𝑀𝑡(𝑥) is the predicted yield from the t-th decision tree
The crop prediction model is trained using the decision tree classifier to give
information about the crop growth in the specific region and season , The decision Tree
Classifier for crop prediction employing the preprocessed dataset ‘preprocessed2.csv’. The
dataset is split into training data (80%) and testing data (20%). Function like unique_vals(),
class_counts(), parcel(), gini(), and info_gain() analyze data and determine the most excellent
split using find_best_split(). The decision Tree structure is defined usind the question, leaf
and decision node class and build_tree() recursively develops the tree. The trained model is
saved as ‘filetest2.pkl’. The prediction of the model takes the input values state, district and
season as command-line inputs. It classifies the crop using classify(), retrieves prediction
probabilities using print_leaf(), and prints the predicted list of crops in that specific region
and season. The decision tree model helps in data-driven decision-making by classifying
crops based on patterns in the dataset, enhancing agricultural productivity.
15
In Equation 10 the 𝑥1, 𝑥2,..., 𝑥𝑛 are feature values given by the user like state, district and
season for getting the possibility crop prediction shown in Equation 11.
𝐶𝑀 (𝑥) = 𝑦 𝐸𝑞𝑛(11)
16
CHAPTER 5
IMPLEMENTATION
5.1 Crop Recommendation System
import pandas as pd
import numpy as np
import pickle
import sys
from sklearn.ensemble import RandomForestClassifier
# Check if script is running for training or prediction
if len(sys.argv) == 2 and sys.argv[1] == "--train":
# Load the dataset
dataset = pd.read_csv("Crop_recommendation.csv")
# Separate features (X) and target labels (y)
X = dataset.iloc[:, :-1].values # All columns except the last one
y = dataset.iloc[:, -1].values # Last column (crop type)
# Train the model
classifier = RandomForestClassifier(n_estimators=10, criterion="entropy",
random_state=42)
classifier.fit(X, y)
# Save the trained model
with open("crop_model.pkl", "wb") as model_file:
pickle.dump(classifier, model_file)
print(" Model training complete! The trained model is saved as 'crop_model.pkl'.")
else:
# Ensure correct number of arguments
if len(sys.argv) != 9:
print(" Incorrect number of arguments. Usage:")
print('python recommendcrop.py N P K temperature humidity pH rainfall model_path')
sys.exit(1)
# Parse user inputs (convert to appropriate types)
try:
N = float(sys.argv[1])
P = float(sys.argv[2])
17
K = float(sys.argv[3])
temperature = float(sys.argv[4])
humidity = float(sys.argv[5])
pH = float(sys.argv[6])
rainfall = float(sys.argv[7])
model_path = sys.argv[8]
except ValueError:
print(" Invalid input: Please enter numeric values for N, P, K, temperature, humidity, pH,
and rainfall.")
sys.exit(1)
# Load the trained model
try:
with open(model_path, "rb") as model_file:
model = pickle.load(model_file)
except FileNotFoundError:
print(f" Model file not found: {model_path}")
sys.exit(1)
# Prepare input data
user_input = np.array([[N, P, K, temperature, humidity, pH, rainfall]])
# Predict the crop
predicted_crop = model.predict(user_input)[0]
print(f"{predicted_crop}")
5.2 Fertilizer Recommendation System
import sys
import pickle
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.ensemble import RandomForestClassifier
import os
import warnings
warnings.filterwarnings("ignore") # Suppress all warnings
18
# Paths for model & encoders
model_path =
r"C:\Users\hball\Downloads\crop-management-system-main\fertilizer_model.pkl"
encoders_path =
r"C:\Users\hball\Downloads\crop-management-system-main\label_encoders.pkl"
dataset_path =
r"C:\Users\hball\Downloads\crop-management-system-main\crop-management-system-main\
fertilizer_recommendation.csv"
# Function to train model if not available
def train_model():
df = pd.read_csv(dataset_path)
df.rename(columns=lambda x: x.strip(), inplace=True)
# Encode categorical variables
le_soil = LabelEncoder()
le_crop = LabelEncoder()
le_fertilizer = LabelEncoder()
#df["Soil Type"] = le_soil.fit_transform(df["Soil Type"])
#df["Crop Type"] = le_crop.fit_transform(df["Crop Type"])
df["Fertilizer Name"] = le_fertilizer.fit_transform(df["Fertilizer Name"])
# Define features & target
X = df[['Temparature', 'Humidity', 'Soil Moisture', 'Soil Type', 'Crop Type', 'Nitrogen',
'Potassium', 'Phosphorous']]
y = df["Fertilizer Name"]
# Train the model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Save model & encoders
with open(model_path, "wb") as f:
pickle.dump(model, f)
with open(encoders_path, "wb") as f:
pickle.dump({"soil": le_soil, "crop": le_crop, "fertilizer": le_fertilizer}, f)
print(" Model trained and saved successfully!")
19
# Train if model doesn't exist
if not os.path.exists(model_path) or not os.path.exists(encoders_path):
print(" Model or encoders not found. Training the model now...")
train_model()
# Load trained model & encoders
try:
with open(model_path, "rb") as f:
model = pickle.load(f)
with open(encoders_path, "rb") as f:
encoders = pickle.load(f)
# Verify encoders loaded correctly
if not isinstance(encoders, dict) or "soil" not in encoders or "crop" not in encoders or
"fertilizer" not in encoders:
raise ValueError(" Encoders dictionary structure is incorrect. Re-training the model.")
except Exception as e:
print(f" Error loading model or encoders: {e}")
print(" Re-training the model...")
train_model()
def predict_fertilizer(n, p, k, t, h, sm, soil, crop):
try:
if soil not in encoders["soil"].classes_:
return f" Error: '{soil}' is not a recognized Soil Type. Available:
{list(encoders['soil'].classes_)}"
if crop not in encoders["crop"].classes_:
return f" Error: '{crop}' is not a recognized Crop Type. Available:
{list(encoders['crop'].classes_)}
soil_encoded = encoders["soil"].transform([soil])[0]
crop_encoded = encoders["crop"].transform([crop])[0]
# Prepare input array
input_data = np.array([[t, h, sm, soil_encoded, crop_encoded, n, k, p]])
# Make prediction
pred = model.predict(input_data)
# Decode prediction
fertilizer_name = encoders["fertilizer"].inverse_transform(pred)[0]
20
return f" {fertilizer_name}"
except Exception as e:
return f" Error: {str(e)}"
# Run from command-line with inputs
if __name__ == "__main__":
if len(sys.argv) != 9:
print(f" Error: Invalid number of inputs. Expected 8 parameters, received
{len(sys.argv)-1}.")
print(" Received parameters:", sys.argv[1:])
n = float(sys.argv[1]) # Nitrogen
p = float(sys.argv[2]) # Phosphorus
k = float(sys.argv[3]) # Potassium
t = float(sys.argv[4]) # Temperature
h = float(sys.argv[5]) # Humidity
sm = float(sys.argv[6]) # Soil Moisture
soil = sys.argv[7] # Soil Type
crop = sys.argv[8] # Crop Type
# Get prediction & print result
result = predict_fertilizer(n, p, k, t, h, sm, soil, crop)
print(result)
5.3 Yield Prediction System
import joblib
import pandas as pd
import sys
if len(sys.argv) != 7:
print(" Error: Incorrect number of arguments.")
#print("Usage: python yield_prediction.py <State_Name> <District_Name> <Crop_Year>
<Season> <Crop> <Area>")
sys.exit(1) =
joblib.load(r"C:\Users\hball\Downloads\crop-management-system-main\crop_production_mo
del.pkl")
ohe =
joblib.load(r"C:\Users\hball\Downloads\crop-management-system-\one_hot_encoder.pkl")
21
state = sys.argv[1]
district = sys.argv[2]
year = int(sys.argv[3])
season = sys.argv[4]
crop = sys.argv[5]
area = float(sys.argv[6])
# Prepare input dictionary
user_input = {
'State_Name': state,
'District_Name': district,
'Season': season,
'Crop': crop,
'Crop_Year': year,
'Area': area
}
# Convert input to DataFrame
user_df = pd.DataFrame([user_input])
# Apply OneHotEncoding
X_encoded = ohe.transform(user_df[['State_Name', 'District_Name', 'Season', 'Crop',
'Crop_Year']])
X_encoded_df = pd.DataFrame(X_encoded, columns=ohe.get_feature_names_out())
# Add numerical feature 'Area'
X_final = pd.concat([X_encoded_df, user_df[['Area']].reset_index(drop=True)], axis=1)
# Ensure features match the trained model
trained_features = model.feature_names_in_
X_final = X_final.reindex(columns=trained_features, fill_value=0)
# Make prediction
prediction = model.predict(X_final)
print(f"{prediction[0]}")
5.4 Crop Possibility Prediction
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.ensemble import RandomForestClassifier
22
import joblib
pd.read_csv(r"C:\Users\hball\Downloads\crop-management-system-main\crop-management-
system-main\preprocessed2.csv")
# Select input features (X) and target (y)
X = df[['State_Name', 'District_Name', 'Season']] # Only 3 columns
y = df['Crop']
# Encode categorical data
label_encoders = {}
for column in X.columns:
label_encoders[column] = LabelEncoder()
X[column] = label_encoders[column].fit_transform(X[column])
crop_encoder = LabelEncoder()
y = crop_encoder.fit_transform(y)
# Train model
model = RandomForestClassifier()
model.fit(X, y)
# Save model and encoders
joblib.dump(model, "crop_suggestion_model.pkl")
joblib.dump(label_encoders, "label_encoders_suggest.pkl")
joblib.dump(crop_encoder, "crop_encoder.pkl")
print(“ Model retrained successfully!")
23
CHAPTER 6
In fig. 6.1 we can see the interactive user home page to access the all the 4 modules given in
the navigation bar in left side
24
In fig. 6.2 we can see the crop recommendation system webpage, in provided text box user
can give inputs that are asked in the provided text field, for example we can see in fig.6.3 :
Nitrogen value is given as 90, Phosphorus value is given as 48 ,Potassium value is given as
52 ,Temperature is given as 22,Humidity is given as 85,pH value is given as 6.5 and Avg
Rainfall as 225 mm, Here the recommended crop is “rice”.
25
Fig. 6.6: Yield prediction page
26
Fig. 6.9: Possibility Predicted Crops in Crop Possibility Prediction system
In fig. 6.8 we can see the yield Prediction system webpage, in provided text box user
can give inputs that are asked in the provided text field, for example we can see in fig.6.9 :
State name is entered as Andhra Pradesh, District name is entered as Guntur, Season is
entered as Rabi, Here the predicted crops list of crops are “Arhar, Dry Chillies, Gram,
Groundnut, Jowar, Maize, Moong, Rice, sesamum and so on as shown in fig.6.9”.
27
CHAPTER 7
CONCLUSION
The project effectively created a real-time crop management system using random forest and
decision tree algorithms, emphasizing accessibility and practical use for the farmers. The
system effectively recommends and predicts according to the given input from the user as we
can see the recommended crop is rice for the given inputs shown in fig. 5, we can see the
recommended fertilizer is urea for the given inputs shown in fig. 7, we can see the predicted
yield of the crop is 228.4 quintal for the given inputs shown in fig. 9, we can see the possible
crops grown in particular region are Arhar, Dry Chillies, Gram, Groundnut, Jowar, Maize,
Moong, Rice, sesamum and so on for the given user input as shown in fig.11. Future
enhancements could concentrate on improving the model to ensure quicker and more precise
processing, enhancing its functionality in various real-world settings.
28
REFERENCES
[1]Ajay Agarwal, Sartaj Ahmad,Adesh Pandey, “ Crop Recommendation Based on Soil
Properties: A Comprehensive Analysis” 2023 14th International Conference on
Computing Communication and Networking Technologies (ICCCNT) IEEE
[2]Siva Ramakrishna Sani ,Surya Venkata Sekhar Ummadi ,SriRajarajeswari Thota , Nikitha
Muthineni,Varun Sai Srinivas Swargam,Teja Sree Ravella , “Crop Recommendation
System using Random Forest Algorithm in Machine Learning “2023 2nd International
Conference on Applied Artificial Intelligence and Computing (ICAAIC) IEEE
[3]Shunmuga Lakshmi P,Ram Kishore V ,PillaiPrathaRamachandran,Santhi,Kalaiselvi S , “
A Recommendation System for Crop Prediction Under Diverse Weather Conditions”
2023 9th International Conference on Advanced Computing and Communication Systems
(ICACCS) IEEE
[4]Meet Mehta, Abhijit Saha, Siddharth Fulia, Tushar Jain, Dr. Narendra Shekokar ,“An
Innovative Model For Soil Testing With Intelligent Crop Recommendation System”,2023
14th International Conference on Computing Communication and Networking
Technologies (ICCCNT) IEEE
[5]Dr Gayathiri ,Brindha P,Karthika I,Saranya E,Dr Rajeshkumar G,Dr Rajesh Kanna P, “
Machine Learning based Crop Suitability Prediction and Fertiliser Recommendation
System”,2023 4th International Conference on Electronics and Sustainable
Communication Systems (ICESC) IEEE
[6] D.N.V.S.L.S. Indira,M. Sobhana,A.H.L.Swaroop,Phani Kumar V, “ KRISHI RAKSHAN
- A Machine Learning based New Recommendation System to the Farmer “, 2022 6th
International Conference on Intelligent Computing and Control Systems (ICICCS) IEEE
[7]Mahalakshmi B,Sakthivel V, Sumitha Devi B, Swetha S, “ Agricultural Crop and
Fertilizer Recommendations based on Various Parameters “, 2023 International
Conference on Sustainable Computing and Smart Systems (ICSCSS) IEEE
[8] Jaichandran R, T.Murali Krishna,Sri Harsha Arigela, Ramakrishnan Raman,Dharani N,
Ashok Kumar, “Light GBM Algorithm based Crop Recommendation by Weather
Detection and Acquired Soil Nutrients “,2022 International Conference on Power,
Energy, Control and Transmission Systems (ICPECTS) IEEE
[9]Dr. J. Avanija ,Keerthi Ambati ,Likitheswari Naraganti, Sai Sahith Derangula,Tanujasree
Nashina, “ Crop Recommendation System using Antlion Optimization and Decision Tree
Algorithm”,2024 3rd International Conference on Applied Artificial Intelligence and
Computing (ICAAIC) IEEE
[10] CH. Rakesh D. Vishnu Vardhan, Babu Bhavani Vasantha, G. Sai Krishna “Crop
Recommendation and Prediction System “,2023 9th International Conference on
Advanced Computing and Communication Systems (ICACCS) IEEE
29