Bevezetés
A mezőgazdaság sok indiai számára több, mint munka; ez egy életforma. Ez az az eszköz, amellyel támogatják megélhetésüket, és óriási mértékben hozzájárulnak India gazdaságához. Az agyag-, homok- és iszapszemcséket megfelelő arányban tartalmazó talaj típusának meghatározása fontos a megfelelő növényválasztáshoz és a gyomnövények növekedésének azonosításához. Fedezze fel a mély tanulásban rejlő lehetőségeket a mezőgazdaságban. Ismerje meg a talajtípusok és a gyomok kimutatásának fontosságát Indiában.
Mély tanulás egy feltörekvő technológia, amely minden területen hasznos. A mély tanulást az intelligens mezőgazdaságban széles körben alkalmazzák a szántóföldi megfigyelés, a szántóföldi műveletek, a robotika, a talaj-, víz-, éghajlati viszonyok előrejelzésére, valamint tájszintű föld- és növényfajták megfigyelésére. A talaj fotóját betáplálhatjuk egy mély tanulási architektúrába, irányíthatjuk, hogy megtanulja felismerni a jellemzőket, majd a mélytanulási architektúra segítségével osztályozzuk a talajt.
Ebben a blogban a talaj mezőgazdaságban betöltött fontosságáról fogunk beszélni. A talaj osztályozását gépi tanulási és mély tanulási modellekkel fogjuk végezni.
Tanulási célok
- Meg fogja érteni, milyen fontos a talaj a mezőgazdaságban.
- Megtanulja, hogy a gépi tanulási algoritmusok hogyan osztályozhatják a talajtípusokat.
- Mély tanulási modellt fog alkalmazni a mezőgazdaságban a talajtípusok osztályozására.
- Fedezze fel a több halmozású együttes tanulás koncepcióját, hogy növelje előrejelzéseink pontosságát.
Ez a cikk részeként jelent meg Adattudományi Blogaton.
Tartalomjegyzék
A talaj szerepe a mezőgazdaságban
A növényekből és állatokból kiürült szerves anyagok, ásványok, gázok, folyadékok és egyéb anyagok fontos talajt, a mezőgazdaság alapját képezik. A mezőgazdaság alapja a növényekből és állatokból származó gázokban, ásványi anyagokban, szerves anyagokban és egyéb anyagokban rejlik, amelyek a talajrendszert alkotják.
India gazdasága tisztán a mezőgazdaságra támaszkodik; a talaj fontos a növények számára, termékenysége miatt nemkívánatos gyomok kialakulásához vezet.
A nedvesség és a hőmérséklet azok a fizikai változók, amelyek befolyásolják a pórusok és részecskék képződését a talajban, befolyásolva a gyökérnövekedést, a víz beszivárgását és a növények kelési sebességét.
De főleg a talajban vannak homok- és agyagrészecskék. A túlnyomóan elérhető talajrészecskék közepette agyag bőven található a kutatási területen. Az agyagrészecskék a felszínen való elérhetősége a bőséges tápanyagnak köszönhető. Tőzeg és vályog alig van jelen. Az agyagos talaj között tágas, a víz visszatartja.
adatbázisba
A jellemzők kinyerése a jó mélytanulási modell felépítésének egyik fő lépése. Fontos azonosítani azokat a funkciókat, amelyek szükségesek lehetnek a gépi tanulási algoritmusok felépítéséhez. Használjuk a Mahotas könyvtárat a Haralick-jellemzők kinyeréséhez, amelyek a képek tér- és textúrájával rendelkeznek.
A képtárat használjuk a képek szürkeárnyalatossá alakítására, valamint az objektumészlelésnél hasznos Gradient hisztogram (HOG) funkciók kinyerésére. Végül a funkciók értékeit összefűzzük egy tömbbe, és később felhasználjuk őket a gépi tanulásban és a mélytanulási algoritmusokban.
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)
Gépi tanulási algoritmusok a talajosztályozásban
Most építsünk egy gépi tanulási modellt a Kaggle-től kapott talajképek felhasználásával.
Először az összes könyvtárat importáljuk, majd létrehozunk egy nevű függvényt kivonat_szolgáltatások hogy vonásokat vonjunk ki a képekből. A képeket ezután importálják és feldolgozzák, ami magában foglalja a szürkeárnyalatos átalakítást is, majd megkapjuk ezeket a funkciókat. Ezután az egyes képek jellemzőinek kinyerése után a címkék kódolása történik Címkekódoló.
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)
Mély neurális hálózatok
A számítási egységek és a neuronok száma alapján működik. Minden neuron fogad bemenetet és kimenetet biztosít. A pontosság növelésére és jobb előrejelzések készítésére szolgál, míg a gépi tanulási algoritmusok az adatok értelmezésére támaszkodnak, és ezek alapján születnek döntések.
Is Read: Bevezető útmutató a mély tanuláshoz és a neurális hálózatokhoz
Most építsük fel a Keras Sequential API-jával definiált modellt. Ennek a modellnek lesz egy Conv2D konvolúciós rétege, a MaxPooling2D, egy lapító rétege Flatten és egy sűrű rétege, a Dense.
Végül a modellt a Ádám optimalizáló és kategorikus keresztentrópia veszteség.
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)
Amint látja, a megjósolt osztály 0, ami a Black Soil. Tehát modellünk helyesen osztályozza a talaj típusát.
Javasolt többrétegű együttes tanulási modellarchitektúrák
A StackingClassifier a baseClassifiers és a logisztikus regresszió meta-osztályozó végső_becslő. Ez egyesíti a baseClassifiers kimeneteit, hogy végső előrejelzést készítsen. Ezután edzés és előrejelzés után kiszámítják a pontosságot.
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)
Következtetés
A talaj fontos eleme a jó terméshozamnak. Fontos tudni, hogy milyen talajtípus szükséges az adott növény termesztéséhez. Ezért fontos a talaj típusának osztályozása. Mivel a talajtípus manuális osztályozása időigényes feladat, így a mélytanulási modellek használata egyszerűvé válik. Számos gépi tanulási modell és mély tanulási modell létezik ennek a problémameghatározásnak a megvalósítására. A legjobb választás az adatkészletben lévő adatok minőségétől és mennyiségétől, valamint a problémameghatározástól függ. A legjobb algoritmus kiválasztásának másik módja az, hogy mindegyiket kiértékeli. Ezt úgy tehetjük meg, hogy mérjük a pontosságot, hogy mennyire tudják helyesen osztályozni a talajt. Végül megvalósítottunk egy Multi-Stacking együttes modellt, több modellt használva a legjobb modell felépítéséhez.
Kulcs elvezetések
- A hatékony növényválasztáshoz teljes mértékben meg kell érteni a talajt.
- A mélyreható tanulás a mezőgazdaságban hatékony eszköz, a növénybetegségek előrejelzésétől a talajtípusokig és a vízigényekig.
- Funkciókivonást végeztünk, hogy a talajképekből vonjuk le a jellemzőket.
- Ebben a blogban a gépi tanulási és mélytanulási modelleket vizsgáltuk a talaj osztályozására, valamint egy több halmozott együttes modellt a pontosság növelése érdekében.
Gyakran ismételt kérdések
V. Fontos a megfelelő növényválasztás és a gyomnövekedés azonosítása szempontjából.
V. A jellemzőket, beleértve a homokot, agyagot, iszapot, tőzeget és vályogot, figyelembe kell venni.
V. A mély tanulás lehetővé teszi a modell számára, hogy intelligens döntéseket hozzon, míg a hagyományos gépi tanulás az adatok értelmezésével hoz döntéseket.
V. A Multi-Stacking ensemble modell növeli a talajtípusok osztályozásának pontosságát.
A cikkben bemutatott média nem az Analytics Vidhya tulajdona, és a szerző saját belátása szerint használja.
Összefüggő
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- Forrás: https://www.analyticsvidhya.com/blog/2024/01/deep-learning-in-agriculture-improving-soil-crop-yields/
- :van
- :is
- :nem
- $ UP
- 1
- 10
- 13
- 224
- 32
- 33
- 43
- 46
- 51
- 7
- 9
- a
- elfogadja
- pontosság
- át
- Ádám
- érintő
- Után
- mezőgazdaság
- algoritmus
- algoritmusok
- Minden termék
- lehetővé teszi, hogy
- között
- összeg
- an
- analitika
- Analytics Vidhya
- és a
- állatok
- Másik
- api
- alkalmazott
- építészet
- VANNAK
- Sor
- cikkben
- AS
- At
- elérhetőség
- elérhető
- alapján
- BE
- válik
- óta
- BEST
- Jobb
- között
- Fekete
- Blog
- blogaton
- mindkét
- épít
- Épület
- by
- számított
- TUD
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- választja
- osztály
- besorolás
- osztályoz
- Klíma
- szín
- kombájnok
- hogyan
- összeállított
- teljesen
- számítás
- koncepció
- Körülmények
- figyelembe vett
- contribuer
- megtérít
- konvertáló
- helyesen
- termés
- növények
- dátum
- határozatok
- mély
- mély tanulás
- meghatározott
- sűrű
- függ
- kimutatására
- Érzékelés
- meghatározás
- Fejlesztés
- különbözik
- felfedez
- belátása
- megvitatni
- betegség
- megjelenítő
- do
- nem
- csinált
- két
- minden
- könnyű
- gazdaság
- Hatékony
- elem
- elemek
- megjelenése
- csiszolókő
- Feltörekvő technológia
- kódolt
- kódolás
- biztosítása
- korszakok
- Eter (ETH)
- értékelő
- Minden
- kutatás
- feltárt
- kivonat
- kitermelés
- Funkció
- Jellemzők
- kevés
- mező
- utolsó
- Végül
- vezetéknév
- A
- erdő
- forma
- képződés
- Alapítvány
- ból ből
- funkció
- generátorok
- kap
- szerzés
- jó
- kapott
- színátmenetek
- Szürkeárnyalatos
- Növekedés
- útmutató
- kéz
- Legyen
- hasznos
- ennélfogva
- történelem
- Hogyan
- HTTPS
- Azonosítás
- azonosítani
- azonosító
- kép
- képek
- nagyon
- Hatás
- végre
- végre
- importál
- fontosság
- fontos
- javított
- javuló
- in
- magában foglalja a
- Beleértve
- Növelje
- Növeli
- India
- indexek
- információ
- bemenet
- Intelligens
- bele
- bevezető
- IT
- ITS
- Munka
- jpg
- éppen
- keras
- Kulcs
- Ismerve
- Címke
- Címkék
- Telek
- a későbbiekben
- réteg
- tojók
- vezetékek
- TANUL
- tanulás
- Hossz
- könyvtárak
- könyvtár
- fekszik
- élet
- megélhetés
- kiszámításának
- le
- gép
- gépi tanulás
- készült
- Fő
- főleg
- csinál
- KÉSZÍT
- Gyártás
- kézzel
- sok
- Anyag
- Lehet..
- eszközök
- mérő
- Média
- Metrics
- ásványok
- modell
- modellek
- ellenőrzés
- több
- sok
- többszörös
- Nevezett
- elengedhetetlen
- igények
- szomszédok
- ideg-
- neuronok
- szám
- számtalan
- táplálás
- tárgy
- Objektumfelismerés
- of
- on
- ONE
- működés
- organikus
- OS
- Más
- mi
- teljesítmény
- kimenetek
- tulajdonú
- rész
- ösvény
- fizikai
- növény
- növények
- Plató
- Platón adatintelligencia
- PlatoData
- potenciális
- erős
- jósolt
- előrejelzésére
- előrejelzés
- Tippek
- be
- nyomtatás
- Probléma
- feldolgozott
- gyárt
- javasolt
- biztosít
- közzétett
- tisztán
- világítás
- véletlen
- Rbf
- regresszió
- támaszkodnak
- jelentést
- azok
- visszatartott
- visszatérés
- robotika
- Szerep
- gyökér
- azonos
- SAND
- Mérleg
- Tudomány
- lát
- kiválasztás
- Szettek
- beállítás
- kellene
- mutatott
- óta
- egyetlen
- weboldal
- okos
- So
- talaj
- térbeli
- különleges
- sebesség
- felhalmozás
- nyilatkozat
- Lépései
- megfelelő
- mellékelt
- támogatás
- felületi
- SVC
- rendszer
- Feladat
- Technológia
- tensorflow
- Tesztelés
- mint
- hogy
- A
- azok
- Őket
- akkor
- Ott.
- Ezek
- ők
- ezt
- Keresztül
- időigényes
- nak nek
- szerszám
- téma
- hagyományos
- Képzések
- típus
- típusok
- megért
- egységek
- felesleges
- használ
- használt
- segítségével
- érvényesítés
- Értékek
- volt
- Víz
- Út..
- we
- webp
- gyom
- Mit
- Mi
- ami
- míg
- miért
- lesz
- val vel
- művek
- X
- sárga
- így
- hozamok
- te
- zephyrnet