esittely
Maatalous on monille intialaisille enemmän kuin pelkkä työ; se on elämäntapa. Se on keino, jolla he tukevat toimeentuloaan ja myötävaikuttavat valtavasti Intian talouteen. Sen maaperän määrittäminen, jossa on savea, hiekkaa ja lietehiukkasia vastaavassa suhteessa, on tärkeää sopivan sadon valinnan ja rikkakasvien kasvun tunnistamisen kannalta. Tutustu syvän oppimisen potentiaaliin maataloudessa. Ymmärrä maaperätyyppien ja rikkakasvien havaitsemisen merkitys Intialle.
Syvällinen oppiminen on nouseva tekniikka, josta on apua kaikilla aloilla. Syväoppimista on sovellettu älykkäässä maataloudessa laajasti peltovalvontaan, peltokäyttöön, robotiikkaan, maaperän, veden, ilmasto-olosuhteiden ennustamiseen sekä maisematason maa- ja viljelykasvien seurantaan. Voimme syöttää valokuvan maaperästä syväoppimisarkkitehtuuriin, ohjata sen oppimaan havaitsemaan ominaisuuksia ja sitten käyttää syväoppimisarkkitehtuuria maaperän luokitteluun.
Tässä blogissa keskustelemme maaperän merkityksestä maataloudessa. Luokittelemme maaperän koneoppimisen ja syväoppimisen malleilla.
Oppimistavoitteet
- Ymmärrät kuinka tärkeä maaperä on maataloudessa.
- Opit kuinka koneoppimisalgoritmit voivat luokitella maaperätyyppejä.
- Toteutat syvän oppimismallin maataloudessa maaperätyyppien luokitteluun.
- Tutustu usean pinoamisen kokonaisuusoppimisen käsitteeseen parantaaksesi ennusteidemme tarkkuutta.
Tämä artikkeli julkaistiin osana Data Science Blogathon.
Sisällysluettelo
Maaperän rooli maataloudessa
Orgaaniset aineet, mineraalit, kaasut, nesteet ja muut kasveista ja eläimistä erittyvät aineet muodostavat tärkeän maaperän, maatalouden perustan. Maatalouden perusta on kaasuissa, mineraaleissa, orgaanisissa aineissa ja muissa kasveista ja eläimistä peräisin olevissa aineissa, jotka muodostavat maaperän.
Intian talous on puhtaasti maatalouden varassa; maaperä on tärkeä viljelykasveille, ja se johtaa ei-toivottujen rikkakasvien kehittymiseen sen hedelmällisyyden vuoksi.
Kosteus ja lämpötila ovat fysikaalisia muuttujia, jotka vaikuttavat huokosten ja hiukkasten muodostumiseen maaperässä, vaikuttaen juurien kasvuun, veden tunkeutumiseen ja kasvien syntynopeuteen.
Mutta pääasiassa maaperässä on hiekka- ja savehiukkasia. Yleisesti saatavilla olevien maapartikkelien keskellä tutkimuspaikalla on runsaasti savea. Savihiukkasten saatavuus pinnalla johtuu toimitetusta runsaasta ravinnosta. Turvetta ja savea ei juurikaan ole. Savityyppinen maaperä on väliltä tilava, jossa vesi pidättyy.
aineisto
Ominaisuuden poimiminen on yksi tärkeimmistä vaiheista hyvän syväoppimismallin rakentamisessa. On tärkeää tunnistaa ominaisuuksia, jotka voivat olla tarpeellisia koneoppimisalgoritmien rakentamisessa. Tulemme käyttämään Mahotas kirjasto Haralick-ominaisuuksien poimimiseksi, joissa on kuvien tila- ja tekstuuritiedot.
Käytämme Skimage-kirjastoa kuvien muuntamiseen harmaasävyiksi ja poimimaan gradientin histogrammin (HOG) ominaisuuksia, jotka ovat hyödyllisiä kohteen havaitsemisessa. Lopuksi ketjutamme ominaisuuksien arvot taulukkoon ja käytämme niitä myöhemmin koneoppimisessa ja syväoppimisalgoritmeissa.
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)
Koneoppimisalgoritmit maaperän luokittelussa
Rakennetaan nyt koneoppimismalli käyttämällä Kagglesta saamiamme maaperäkuvia.
Ensin tuomme kaikki kirjastot ja rakennamme sitten funktion nimeltä Pura_ominaisuudet poimimaan piirteitä kuvista. Sitten kuvat tuodaan ja käsitellään, mikä sisältää muuntamisen harmaasävyiksi, ja sitten saamme nämä ominaisuudet. Sitten, kun kunkin kuvan ominaisuudet on purettu, tarrat koodataan käyttämällä Label Encoder.
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)
Deep Neural Networks
Se toimii laskentayksiköiden ja neuronien lukumäärän perusteella. Jokainen neuroni hyväksyy syötteitä ja tuottaa ulostulon. Sitä käytetään tarkkuuden lisäämiseen ja parempien ennusteiden tekemiseen, kun taas koneoppimisalgoritmit luottavat datan tulkintaan ja niiden perusteella tehdään päätöksiä.
Lue myös: Johdatusopas syvään oppimiseen ja hermoverkkoihin
Rakennetaan nyt Kerasin Sequential API:lla määritetty malli. Tässä mallissa on Conv2D-konvoluutiokerros MaxPooling2D, litistävä kerros Flatten ja tiheät kerrokset Dense.
Lopuksi malli kootaan käyttämällä Aatami optimoija ja kategorinen ristientropiahäviö.
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)
Kuten näet, ennustettu luokka on 0, joka on Black Soil. Joten mallimme luokittelee maaperän oikein.
Ehdotetut usean pinoamisen kokonaisuusoppimismalliarkkitehtuurit
- StackingClassifier on alustettu baseClassifiersilla ja a logistinen regressio meta-luokittaja lopullinen_estimaattori. Tämä yhdistää baseClassifiersin lähdöt lopullisen ennusteen tekemiseksi. Sitten, harjoittelun ja ennustamisen jälkeen, tarkkuus lasketaan.
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)
Yhteenveto
Maaperä on tärkeä osa hyvän sadon tuottamista. On tärkeää tietää, mikä maaperä on tarpeen kyseisen sadon tuottamiseksi. Joten maaperän luokittelusta tulee tärkeä. Koska maaperän manuaalinen luokittelu on aikaa vievä tehtävä, syväoppimismallien käyttäminen niiden luokittelussa on helppoa. On olemassa monia koneoppimismalleja ja syväoppimismalleja tämän ongelmanhallinnan toteuttamiseksi. Parhaan valinta riippuu aineistossa olevien tietojen laadusta ja määrästä sekä käsillä olevasta ongelmankuvauksesta. Toinen tapa valita paras algoritmi on arvioida jokainen. Voimme tehdä sen mittaamalla tarkkuuden, kuinka paljon he voivat luokitella maaperän oikein. Lopuksi otimme käyttöön Multi-Stacking ensemble -mallin käyttämällä useita malleja parhaan mallin rakentamiseen.
Keskeiset ostokset
- Tehokkaan viljelykasvien valinnan kannalta on ymmärrettävä maaperä täysin.
- Syväoppiminen maataloudessa on tehokas työkalu kasvitautien ennustamisesta maaperän tyyppeihin ja veden tarpeisiin.
- Olemme tehneet ominaisuuspoiminnan saadaksemme ominaisuuksia maaperäkuvista.
- Tässä blogissa tutkimme koneoppimis- ja syväoppimismalleja maaperän luokittelussa sekä monikerroksista kokonaisuusmallia tarkkuuden parantamiseksi.
Usein kysytyt kysymykset
V. Se on tärkeää sopivan sadon valinnassa ja rikkakasvien kasvun tunnistamisessa.
A. Ominaisuudet, mukaan lukien hiekka, savi, liete, turve ja savi, otetaan huomioon.
V. Syväoppiminen sallii mallin tehdä älykkäitä päätöksiä, kun taas perinteinen koneoppiminen tekee päätökset tulkitsemalla tietoja.
V. Multi-Stacking ensemble -malli lisää maaperätyypin luokittelun tarkkuutta.
Tässä artikkelissa näkyvä media ei ole Analytics Vidhyan omistuksessa, ja sitä käytetään tekijän harkinnan mukaan.
liittyvä
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoData.Network Vertical Generatiivinen Ai. Vahvista itseäsi. Pääsy tästä.
- PlatoAiStream. Web3 Intelligence. Tietoa laajennettu. Pääsy tästä.
- PlatoESG. hiili, CleanTech, energia, ympäristö, Aurinko, Jätehuolto. Pääsy tästä.
- PlatonHealth. Biotekniikan ja kliinisten kokeiden älykkyys. Pääsy tästä.
- Lähde: https://www.analyticsvidhya.com/blog/2024/01/deep-learning-in-agriculture-improving-soil-crop-yields/
- :on
- :On
- :ei
- $ YLÖS
- 1
- 10
- 13
- 224
- 32
- 33
- 43
- 46
- 51
- 7
- 9
- a
- hyväksyy
- tarkkuus
- poikki
- Aatami
- vaikuttavat
- Jälkeen
- maatalous
- algoritmi
- algoritmit
- Kaikki
- mahdollistaa
- keskellä
- määrä
- an
- Analytics
- Analyysi Vidhya
- ja
- eläimet
- Toinen
- api
- sovellettu
- arkkitehtuuri
- OVAT
- Ryhmä
- artikkeli
- AS
- At
- saatavuus
- saatavissa
- perustua
- BE
- tulee
- ollut
- PARAS
- Paremmin
- välillä
- Musta
- Blogi
- blogathon
- sekä
- rakentaa
- Rakentaminen
- by
- laskettu
- CAN
- Valita
- valita
- luokka
- luokittelu
- luokitella
- Ilmasto
- väri
- yhdistää
- Tulla
- koottu
- täysin
- laskeminen
- käsite
- olosuhteet
- harkittu
- edistävät
- muuntaa
- muuntaminen
- oikein
- sato
- viljelykasvien
- tiedot
- päätökset
- syvä
- syvä oppiminen
- määritelty
- tiheä
- riippuu
- havaita
- Detection
- määritys
- Kehitys
- erota
- löytää
- harkinnan
- pohtia
- Sairaus
- näyttämällä
- do
- ei
- tehty
- kaksi
- kukin
- helppo
- talous
- Tehokas
- elementti
- elementtejä
- syntyminen
- syntymässä
- Kehittyvä teknologia
- koodattu
- koodaus
- varmistamalla
- aikakausia
- Eetteri (ETH)
- arviointiin
- Joka
- tutkimus
- tutkitaan
- uute
- uuttaminen
- Ominaisuus
- Ominaisuudet
- harvat
- ala
- lopullinen
- Vihdoin
- Etunimi
- varten
- metsä
- muoto
- muodostus
- perusta
- alkaen
- toiminto
- generaattorit
- saada
- saada
- hyvä
- sai
- kaltevuudet
- Harmaasävy
- Kasvu
- ohjaavat
- käsi
- Olla
- hyödyllinen
- siten
- historia
- Miten
- HTTPS
- Tunnistaminen
- tunnistaa
- tunnistaminen
- kuva
- kuvien
- suunnattomasti
- Vaikutus
- toteuttaa
- täytäntöön
- tuoda
- merkitys
- tärkeä
- parani
- parantaminen
- in
- sisältää
- Mukaan lukien
- Kasvaa
- Lisäykset
- Intia
- Indeksit
- tiedot
- tuloa
- Älykäs
- tulee
- alustava
- IT
- SEN
- Job
- jpg
- vain
- Keras
- avain
- tietäen
- Merkki
- tarrat
- Maa
- myöhemmin
- kerros
- kerrokset
- Liidit
- OPPIA
- oppiminen
- Pituus
- kirjastot
- Kirjasto
- piilee
- elämä
- elinkeinot
- kuormitus
- pois
- kone
- koneoppiminen
- tehty
- tärkein
- pääasiallisesti
- tehdä
- TEE
- Tekeminen
- käsin
- monet
- asia
- Saattaa..
- välineet
- mittaus
- Media
- Metrics
- mineraalit
- malli
- mallit
- seuranta
- lisää
- paljon
- moninkertainen
- nimetty
- välttämätön
- tarpeet
- naapurit
- hermo-
- neuronien
- numero
- numpy
- ravitsemus
- objekti
- Objektin tunnistus
- of
- on
- ONE
- toiminta
- orgaaninen
- OS
- Muut
- meidän
- ulostulo
- lähdöt
- omistuksessa
- osa
- polku
- kuva
- fyysinen
- kasvi
- kasvit
- Platon
- Platonin tietotieto
- PlatonData
- mahdollinen
- voimakas
- ennusti
- ennustamiseen
- ennustus
- Ennusteet
- esittää
- tulostus
- Ongelma
- jalostettu
- tuottaa
- ehdotettu
- tarjoaa
- julkaistu
- puhtaasti
- laatu
- satunnainen
- Rbf
- regressio
- luottaa
- raportti
- ne
- säilytetään
- palata
- robotiikka
- Rooli
- juuri
- sama
- SAND
- asteikot
- tiede
- nähdä
- valinta
- Setit
- asetus
- shouldnt
- esitetty
- koska
- single
- paikka
- fiksu
- So
- maaperä
- tila-
- erityinen
- nopeus
- pinoaminen
- Lausunto
- Askeleet
- sopiva
- toimitetaan
- tuki
- pinta
- svc
- järjestelmä
- Tehtävä
- Elektroniikka
- tensorflow
- Testaus
- kuin
- että
- -
- heidän
- Niitä
- sitten
- Siellä.
- Nämä
- ne
- tätä
- Kautta
- aikaavievä
- että
- työkalu
- aihe
- perinteinen
- koulutus
- tyyppi
- tyypit
- ymmärtää
- yksiköt
- toivottuja
- käyttää
- käytetty
- käyttämällä
- validointi
- arvot
- oli
- vesi
- Tapa..
- we
- WebP
- rikkaruoho
- Mitä
- Mikä on
- joka
- vaikka
- miksi
- tulee
- with
- toimii
- X
- keltainen
- tuottaen
- saannot
- te
- zephyrnet