زراعت اور گہری تعلیم: مٹی اور فصل کی پیداوار کو بہتر بنانا

زراعت اور گہری تعلیم: مٹی اور فصل کی پیداوار کو بہتر بنانا

ماخذ نوڈ: 3066255

تعارف

بہت سے ہندوستانیوں کے لیے زراعت صرف ایک کام سے زیادہ نہیں ہے۔ یہ زندگی کا ایک طریقہ ہے. یہ وہ ذریعہ ہے جس کے ذریعے وہ اپنی روزی روٹی کو سہارا دیتے ہیں اور ہندوستان کی معیشت میں بہت زیادہ حصہ ڈالتے ہیں۔ مٹی کی قسم کا تعین جس میں مٹی، ریت اور گاد کے ذرات متعلقہ تناسب میں ہوں فصل کے مناسب انتخاب اور جڑی بوٹیوں کی نشوونما کے لیے ضروری ہے۔ زراعت میں گہری تعلیم کی صلاحیت کو دریافت کریں۔ ہندوستان کے لیے مٹی کی اقسام اور گھاس کا پتہ لگانے کی اہمیت کو سمجھیں۔

گہرے سیکھنے ایک ابھرتی ہوئی ٹیکنالوجی ہے جو ہر شعبے میں مددگار ہے۔ کھیتوں کی نگرانی، فیلڈ آپریشن، روبوٹکس، مٹی، پانی، آب و ہوا کے حالات کی پیشن گوئی، اور زمین کی تزئین کی سطح کی زمین اور فصل کی اقسام کی نگرانی کے لیے سمارٹ ایگریکلچر میں گہرے سیکھنے کو مقبول طور پر لاگو کیا گیا ہے۔ ہم مٹی کی تصویر کو گہرے سیکھنے والے فن تعمیر میں کھلا سکتے ہیں، خصوصیات کا پتہ لگانا سیکھنے کے لیے اس کی رہنمائی کر سکتے ہیں، اور پھر مٹی کی درجہ بندی کرنے کے لیے ڈیپ لرننگ فن تعمیر کا استعمال کر سکتے ہیں۔

زراعت میں گہری تعلیم

اس بلاگ میں ہم زراعت میں مٹی کی اہمیت پر بات کریں گے۔ ہم مشین لرننگ اور ڈیپ لرننگ ماڈلز کا استعمال کرتے ہوئے مٹی کی درجہ بندی کریں گے۔

سیکھنے کے مقاصد

  • آپ سمجھ جائیں گے کہ زراعت میں مٹی کی کتنی اہمیت ہے۔
  • آپ سیکھیں گے کہ مشین لرننگ الگورتھم کس طرح مٹی کی اقسام کی درجہ بندی کر سکتے ہیں۔
  • آپ مٹی کی اقسام کی درجہ بندی کرنے کے لیے زراعت میں گہرے سیکھنے کے ماڈل کو نافذ کریں گے۔
  • ہماری پیشین گوئیوں کی درستگی کو بڑھانے کے لیے ملٹی اسٹیکنگ ensemble لرننگ کے تصور کو دریافت کریں۔

اس مضمون کے ایک حصے کے طور پر شائع کیا گیا تھا۔ ڈیٹا سائنس بلاگتھون۔

فہرست

زراعت میں مٹی کا کردار

نامیاتی مادے، معدنیات، گیسیں، مائعات، اور پودوں اور جانوروں سے خارج ہونے والے دیگر مادّے اہم مٹی بناتے ہیں، جو زراعت کی بنیاد ہے۔ زراعت کی بنیاد گیسوں، معدنیات، نامیاتی مادے اور دیگر مادوں میں ہے جو پودوں اور جانوروں سے حاصل ہوتے ہیں، جو مٹی کا نظام بناتے ہیں۔

ہندوستان کی معیشت خالصتاً زراعت پر انحصار کرتی ہے۔ مٹی فصلوں کے لیے اہم ہے، اور یہ اپنی زرخیزی کی وجہ سے ناپسندیدہ جڑی بوٹیوں کی نشوونما کا باعث بنتی ہے۔

زراعت میں مٹی کا کردار | زراعت میں گہری تعلیم

نمی اور درجہ حرارت وہ جسمانی تغیرات ہیں جو مٹی میں چھیدوں اور ذرات کی تشکیل پر اثر انداز ہوتے ہیں، جڑوں کی نشوونما، پانی کی دراندازی، اور پودوں کے نکلنے کی رفتار کو متاثر کرتے ہیں۔

لیکن بنیادی طور پر، مٹی میں ریت اور مٹی کے ذرات ہوتے ہیں۔ وسیع پیمانے پر دستیاب مٹی کے ذرات کے درمیان، تلاش کی جگہ پر مٹی بہت زیادہ ہے۔ سطح پر مٹی کے ذرے کی دستیابی بہت زیادہ غذائیت کی فراہمی کی وجہ سے ہے۔ پیٹ اور لوم شاید ہی موجود ہوں۔ مٹی کی قسم کی مٹی درمیان میں کشادہ ہوتی ہے جس میں پانی برقرار رہتا ہے۔

ڈیٹا بیس

کاگل لنک

ڈیٹاسیٹ | زراعت میں گہری تعلیم
"
"
"
"

گہرائی سے سیکھنے کے اچھے ماڈل کی تعمیر میں فیچر نکالنا ایک اہم مرحلہ ہے۔ ان خصوصیات کی نشاندہی کرنا ضروری ہے جو مشین لرننگ الگورتھم بنانے کے لیے ضروری ہو سکتی ہیں۔ ہم استعمال کریں گے۔ مہوتاس Haralick خصوصیات کو نکالنے کے لیے لائبریری، جس میں تصاویر کی مقامی اور ساخت کی معلومات ہوتی ہیں۔

ہم تصویروں کو گرے اسکیل میں تبدیل کرنے اور ہسٹوگرام آف گریڈینٹ (HOG) خصوصیات کو نکالنے کے لیے اسکیمج لائبریری کا استعمال کریں گے جو آبجیکٹ کا پتہ لگانے کے لیے مفید ہیں۔ آخر میں، ہم خصوصیات کی قدروں کو ایک صف میں جوڑیں گے اور بعد میں انہیں مشین لرننگ اور ڈیپ لرننگ الگورتھم میں استعمال کریں گے۔

خصوصیت نکالنا | زراعت میں گہری تعلیم
import mahotas as mh
from skimage import color, feature, io
import numpy as np

# Function to extract features from an image
def extract_features(image_path):
    img = io.imread(image_path)
    gray_img = color.rgb2gray(img)  # Converting image to grayscale
    
    # Converting the grayscale image to integer type
    gray_img_int = (gray_img * 255).astype(np.uint8)
    
    # Extracting Haralick features using mahotas
    haralick_features = mh.features.haralick(gray_img_int).mean(axis=0)
    
    # Extracting Histogram of Gradients (HOG) features
    hog_features, _ = feature.hog(gray_img, visualize=True)
    
    # Printing the first few elements of each feature array
    print("Haralick Features:", haralick_features[:5])
    print("HOG Features:", hog_features[:5])
    
    # Concatenating the features into a single array
    all_features = np.concatenate((haralick_features, hog_features))
    
    return all_features

image_path = '/kaggle/input/soil-classification-dataset/Soil-Dataset/Yellow Soil/20.jpg'
features = extract_features(image_path)
print("Extracted Features:", features)
"

مٹی کی درجہ بندی میں مشین لرننگ الگورتھم

اب، آئیے کاگل سے حاصل کردہ مٹی کی تصاویر کا استعمال کرتے ہوئے ایک مشین لرننگ ماڈل بنائیں۔

سب سے پہلے، ہم تمام لائبریریوں کو درآمد کریں گے اور پھر نام سے ایک فنکشن بنائیں گے۔ extract_features تصاویر سے خصوصیات نکالنے کے لیے۔ اس کے بعد تصاویر کو امپورٹ اور پروسیس کیا جاتا ہے، جس میں گرے اسکیل میں تبدیل کرنا شامل ہے، اور پھر ہمیں یہ خصوصیات مل جاتی ہیں۔ پھر، ہر تصویر کے لیے خصوصیات نکالنے کے بعد، لیبلز کو استعمال کرتے ہوئے انکوڈ کیا جاتا ہے۔ لیبل انکوڈر۔

import os
import numpy as np
import mahotas as mh
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.ensemble import RandomForestClassifier, StackingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, classification_report
from skimage import color, feature, io

# Function to extract features from an image
def extract_features(image_path):
    img = io.imread(image_path)
    gray_img = color.rgb2gray(img)  # Converting image to grayscale
    gray_img_int = (gray_img * 255).astype(np.uint8)
    haralick_features = mh.features.haralick(gray_img_int).mean(axis=0)
    hog_features, _ = feature.hog(gray_img, visualize=True)
    hog_features_flat = hog_features.flatten()  # Flattening the HOG features
    # Ensuring both sets of features have the same length
    hog_features_flat = hog_features_flat[:haralick_features.shape[0]]
    return np.concatenate((haralick_features, hog_features_flat))

data_dir = "/kaggle/input/soil-classification-dataset/Soil-Dataset"

image_paths = []
labels = []

class_indices = {'Black Soil': 0, 'Cinder Soil': 1, 'Laterite Soil': 2, 
'Peat Soil': 3, 'Yellow Soil': 4}

for soil_class, class_index in class_indices.items():
    class_dir = os.path.join(data_dir, soil_class)
    class_images = [os.path.join(class_dir, image) for image in os.listdir(class_dir)]
    image_paths.extend(class_images)
    labels.extend([class_index] * len(class_images))

# Extracting features from images
X = [extract_features(image_path) for image_path in image_paths]

# Encoding labels
le = LabelEncoder()
y = le.fit_transform(labels)

# Splitting the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Initializing and training a Random Forest Classifier
rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)
rf_classifier.fit(X_train, y_train)

# Making predictions
y_pred_rf = rf_classifier.predict(X_test)

# Evaluating the Random Forest model
accuracy_rf = accuracy_score(y_test, y_pred_rf)
report_rf = classification_report(y_test, y_pred_rf)

print("Random Forest Classifier:")
print("Accuracy:", accuracy_rf)
print("Classification Report:n", report_rf)
آؤٹ پٹ | زراعت میں گہری تعلیم
پیداوار

گہرے عصبی نیٹ ورک

یہ حسابی اکائیوں اور نیوران کی تعداد کی بنیاد پر کام کرتا ہے۔ ہر نیوران ان پٹ کو قبول کرتا ہے اور آؤٹ پٹ فراہم کرتا ہے۔ اس کا استعمال درستگی بڑھانے اور بہتر پیشین گوئیاں کرنے کے لیے کیا جاتا ہے، جبکہ مشین لرننگ الگورتھم ڈیٹا کی تشریح پر انحصار کرتے ہیں، اور ان کی بنیاد پر فیصلے کیے جائیں گے۔

بھی پڑھیں: ڈیپ لرننگ اور نیورل نیٹ ورکس کے لیے ایک تعارفی گائیڈ

اب، آئیے Keras سے Sequential API کا استعمال کرتے ہوئے وضاحت کردہ ماڈل بنائیں۔ اس ماڈل میں Conv2D کنولوشن لیئر، MaxPooling2D، ایک چپٹی پرت Flatten، اور گھنی تہوں Dense ہوگی۔

آخر میں، ماڈل کا استعمال کرتے ہوئے مرتب کیا جاتا ہے آدم اصلاح کنندہ اور واضح کراس اینٹروپی نقصان۔

import tensorflow as tf
from tensorflow.keras.preprocessing import image_dataset_from_directory

data_dir = "/kaggle/input/soil-classification-dataset/Soil-Dataset"

# Setting up data generators
batch_size = 32
image_size = (224, 224)

# Using image_dataset_from_directory to load and preprocess the images
train_dataset = image_dataset_from_directory(
    data_dir,
    labels='inferred',
    label_mode='categorical',
    validation_split=0.2,
    subset='training',
    seed=42,
    image_size=image_size,
    batch_size=batch_size,
)

validation_dataset = image_dataset_from_directory(
    data_dir,
    labels='inferred',
    label_mode='categorical',
    validation_split=0.2,
    subset='validation',
    seed=42,
    image_size=image_size,
    batch_size=batch_size,
)

# Displaying the class indices
print("Class indices:", train_dataset.class_names)

model = tf.keras.Sequential([
    tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)),
    tf.keras.layers.MaxPooling2D(2, 2),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(len(train_dataset.class_names), activation='softmax')
])

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# Training the model
epochs = 10
history = model.fit(train_dataset, epochs=epochs, validation_data=validation_dataset)
"
import numpy as np
from tensorflow.keras.preprocessing import image

# Function to load and preprocess an image for prediction
def load_and_preprocess_image(img_path):
    img = image.load_img(img_path, target_size=image_size)
    img_array = image.img_to_array(img)
    img_array = np.expand_dims(img_array, axis=0)
    img_array /= 255.0  
    return img_array

image_path = '/kaggle/input/soil-classification-dataset/Soil-Dataset/Peat Soil/13.jpg'
new_image = load_and_preprocess_image(image_path)

# Making predictions
predictions = model.predict(new_image)
predicted_class = np.argmax(predictions[0])

# Getting the class label based on the class indices
class_labels = {0: 'Black Soil', 1: 'Cinder Soil', 2: 'Laterite Soil',
 3: 'Peat Soil', 4: 'Yellow Soil'}
predicted_label = class_labels[predicted_class]

# Displaying the prediction
print("Predicted Class:", predicted_class)
print("Predicted Label:", predicted_label)
پیداوار
پیداوار

جیسا کہ آپ دیکھ سکتے ہیں، پیش گوئی کی گئی کلاس 0 ہے، جو کہ سیاہ مٹی ہے۔ لہذا، ہمارا ماڈل مٹی کی قسم کو صحیح طریقے سے درجہ بندی کر رہا ہے۔

مجوزہ ملٹی اسٹیکنگ انسمبل لرننگ ماڈل آرکیٹیکچرز

۔ اسٹیکنگ کلاسیفائر بیس کلاسیفائر کے ساتھ شروع کیا جاتا ہے اور a لاجسٹک رجعت میٹا کلاسیفائر حتمی_اندازہ کنندہ. یہ حتمی پیشین گوئی کرنے کے لیے بیس کلاسیفائر کے آؤٹ پٹس کو یکجا کرتا ہے۔ پھر تربیت اور پیشین گوئی کے بعد درستگی کا حساب لگایا جاتا ہے۔

base_classifiers = [
    ('rf', RandomForestClassifier(n_estimators=100, random_state=42)),
    ('knn', KNeighborsClassifier(n_neighbors=5)),
    ('svm', SVC(kernel='rbf', C=1.0, probability=True)),
    ('nb', GaussianNB())
]

# Initializing the stacking classifier with a logistic regression meta-classifier
stacking_classifier = StackingClassifier(estimators=base_classifiers, 
final_estimator=LogisticRegression())

# Training the stacking classifier
stacking_classifier.fit(X_train, y_train)

# Making predictions with Stacking Classifier
y_pred_stacking = stacking_classifier.predict(X_test)

# Evaluating the Stacking Classifier model
accuracy_stacking = accuracy_score(y_test, y_pred_stacking)
report_stacking = classification_report(y_test, y_pred_stacking)

print("nStacking Classifier:")
print("Accuracy:", accuracy_stacking)
print("Classification Report:n", report_stacking)
"

نتیجہ

اچھی فصل پیدا کرنے میں مٹی ایک اہم عنصر ہے۔ یہ جاننا ضروری ہے کہ اس مخصوص فصل کو پیدا کرنے کے لیے مٹی کی کونسی قسم ضروری ہے۔ لہذا، مٹی کی قسم کی درجہ بندی اہم ہو جاتا ہے. چونکہ مٹی کی قسم کو دستی طور پر درجہ بندی کرنا ایک وقت طلب کام ہے، اس لیے ان کی درجہ بندی کرنے کے لیے گہری سیکھنے والے ماڈلز کا استعمال کرنا آسان ہو جاتا ہے۔ اس مسئلے کے بیان کو نافذ کرنے کے لیے مشین لرننگ کے بہت سے ماڈلز اور ڈیپ لرننگ ماڈلز موجود ہیں۔ بہترین کا انتخاب ڈیٹاسیٹ میں موجود ڈیٹا کے معیار اور مقدار اور ہاتھ میں موجود مسئلہ بیان پر منحصر ہے۔ بہترین الگورتھم کا انتخاب کرنے کا دوسرا طریقہ ہر ایک کا جائزہ لینا ہے۔ ہم درستگی کی پیمائش کر کے یہ کر سکتے ہیں کہ وہ مٹی کی کتنی صحیح درجہ بندی کر سکتے ہیں۔ آخر میں، ہم نے بہترین ماڈل بنانے کے لیے متعدد ماڈلز کا استعمال کرتے ہوئے ملٹی اسٹیکنگ جوڑا ماڈل نافذ کیا۔

کلیدی لے لو

  • فصل کے موثر انتخاب کے لیے مٹی کو پوری طرح سمجھنا چاہیے۔
  • زراعت میں گہری تعلیم ایک طاقتور ٹول ہے، پودوں کی بیماری کی پیش گوئی سے لے کر مٹی کی اقسام اور پانی کی ضروریات تک۔
  • ہم نے مٹی کی تصاویر سے خصوصیات حاصل کرنے کے لیے فیچر نکالا ہے۔
  • اس بلاگ میں، ہم نے مٹی کی درجہ بندی کرنے کے لیے مشین لرننگ اور ڈیپ لرننگ ماڈلز اور بہتر درستگی کے لیے ملٹی اسٹیکڈ جوڑ ماڈل کی تلاش کی۔

اکثر پوچھے گئے سوالات

Q1. زراعت میں مٹی کی صحیح درجہ بندی کیوں ضروری ہے؟

A. مناسب فصل کے انتخاب اور جڑی بوٹیوں کی نشوونما کے لیے یہ ضروری ہے۔

Q2. مٹی کی شناخت میں کن اہم خصوصیات پر غور کیا جاتا ہے؟

A. خصوصیات، بشمول ریت، مٹی، گاد، پیٹ، اور لوم، پر غور کیا جاتا ہے۔

Q3. اس موضوع میں گہری تعلیم روایتی مشین لرننگ سے کیسے مختلف ہے؟

A. گہری تعلیم ماڈل کو ذہین فیصلے کرنے کی اجازت دیتی ہے، جبکہ روایتی مشین لرننگ ڈیٹا کی تشریح کرکے فیصلے کرتی ہے۔

Q4. مجوزہ ملٹی اسٹیکنگ جوڑا ماڈل کا کیا کردار ہے؟

A. ملٹی اسٹیکنگ جوڑا ماڈل مٹی کی قسم کی درجہ بندی کی درستگی کو بڑھاتا ہے۔

اس مضمون میں دکھایا گیا میڈیا Analytics ودھیا کی ملکیت نہیں ہے اور مصنف کی صوابدید پر استعمال ہوتا ہے۔

ٹائم اسٹیمپ:

سے زیادہ تجزیات ودھیا