Feature Selection Techniques for IOT Crop Yield Prediction Using Smart Farming Sensor Data
DOI:
https://doi.org/10.58414/SCIENTIFICTEMPER.2026.17.1.12Keywords:
IoT agriculture, crop yield prediction, feature selection, smart farming sensors, SHAP, whale optimization, binary PSO, stochastic gates, contextual feature selectionAbstract
Feature selection plays a critical role in Internet-of-Things (IoT)–based crop-yield prediction due to the presence of heterogeneous, redundant and context-dependent variables derived from soil, climate, management and remote-sensing sources. High-dimensional smart-farming data often degrades generalization performance and increases inference cost, limiting deployment on edge devices. A comprehensive comparative analysis of five feature-selection families: filter, wrapper, embedded, bio-inspired and deep learning–based is conducted using the Smart Farming Sensor Data for Yield Prediction dataset. Fifteen representative methods are evaluated under identical preprocessing, repeated cross-validation and non-parametric significance testing. Embedded SHAP-based selection reduces root mean squared error from 1242.3 to 1186.7 and mean absolute error from 1072.3 to 1030.4 while retaining only 12 features, achieving the strongest accuracy–efficiency trade-off. Bio-inspired multi-strategy whale optimization attains the highest compression, eliminating up to 97.7% of features with competitive RMSE values near 1175 under linear and ensemble regressors. Yield-regime discrimination improves substantially, with distance-correlation filtering and SHAP-select achieving peak AUC–ROC values of 0.571 and 0.560, respectively. Paired Wilcoxon signed-rank tests confirm statistically significant improvements for wrapper and embedded methods (p < 0.05). Results demonstrate that importance-driven embedded selection and multi-objective bio-inspired optimization are well suited for accurate, interpretable and edge-deployable IoT crop-yield analytics.
Downloads
Downloads
Published
Deprecated: Carbon\Traits\Date::getDaysFromStartOfWeek(): Implicitly marking parameter $weekStartsAt as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/Traits/Date.php on line 1394
Deprecated: Carbon\Traits\Date::setDaysFromStartOfWeek(): Implicitly marking parameter $weekStartsAt as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/Traits/Date.php on line 1412
Deprecated: Carbon\Traits\Date::utcOffset(): Implicitly marking parameter $minuteOffset as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/Traits/Date.php on line 1481
Deprecated: Carbon\Traits\Localization::locale(): Implicitly marking parameter $locale as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php on line 447
Deprecated: Symfony\Contracts\Translation\TranslatorInterface::trans(): Implicitly marking parameter $domain as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation-contracts/TranslatorInterface.php on line 62
Deprecated: Symfony\Contracts\Translation\TranslatorInterface::trans(): Implicitly marking parameter $locale as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation-contracts/TranslatorInterface.php on line 62
Deprecated: Carbon\Traits\Test::setDefaultTimezone(): Implicitly marking parameter $date as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/Traits/Test.php on line 203
Deprecated: Return type of Carbon\Traits\Date::createFromTimestamp($timestamp, $tz = null) should either be compatible with DateTime::createFromTimestamp(int|float $timestamp): static, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php on line 29
Deprecated: Carbon\CarbonTimeZone::toOffsetName(): Implicitly marking parameter $date as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php on line 158
Deprecated: Carbon\CarbonTimeZone::toOffsetTimeZone(): Implicitly marking parameter $date as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php on line 172
Deprecated: Carbon\CarbonTimeZone::toRegionName(): Implicitly marking parameter $date as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php on line 188
Deprecated: Carbon\CarbonTimeZone::toRegionTimeZone(): Implicitly marking parameter $date as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php on line 230
Deprecated: Symfony\Component\Translation\Translator::__construct(): Implicitly marking parameter $formatter as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/Translator.php on line 71
Deprecated: Symfony\Component\Translation\Translator::__construct(): Implicitly marking parameter $cacheDir as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/Translator.php on line 71
Deprecated: Symfony\Component\Translation\Translator::addResource(): Implicitly marking parameter $domain as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/Translator.php on line 109
Deprecated: Symfony\Component\Translation\Translator::trans(): Implicitly marking parameter $domain as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/Translator.php on line 176
Deprecated: Symfony\Component\Translation\Translator::trans(): Implicitly marking parameter $locale as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/Translator.php on line 176
Deprecated: Symfony\Component\Translation\Translator::getCatalogue(): Implicitly marking parameter $locale as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/Translator.php on line 211
Deprecated: Symfony\Component\Translation\MessageCatalogue::all(): Implicitly marking parameter $domain as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/MessageCatalogue.php on line 66
Deprecated: Symfony\Component\Translation\MessageCatalogueInterface::all(): Implicitly marking parameter $domain as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/MessageCatalogueInterface.php on line 42
Deprecated: Symfony\Component\Translation\TranslatorBagInterface::getCatalogue(): Implicitly marking parameter $locale as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/TranslatorBagInterface.php on line 28
Deprecated: Carbon\AbstractTranslator::__construct(): Implicitly marking parameter $formatter as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php on line 81
Deprecated: Symfony\Component\Translation\Formatter\MessageFormatter::__construct(): Implicitly marking parameter $translator as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/Formatter/MessageFormatter.php on line 31
Deprecated: Symfony\Component\Translation\Formatter\MessageFormatter::__construct(): Implicitly marking parameter $intlFormatter as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation/Formatter/MessageFormatter.php on line 31
Deprecated: Symfony\Contracts\Translation\TranslatorTrait::trans(): Implicitly marking parameter $domain as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation-contracts/TranslatorTrait.php on line 44
Deprecated: Symfony\Contracts\Translation\TranslatorTrait::trans(): Implicitly marking parameter $locale as nullable is deprecated, the explicit nullable type must be used instead in /home/me0q8pmuecdl/scientifictemper.com/ojs-3.4/lib/pkp/lib/vendor/symfony/translation-contracts/TranslatorTrait.php on line 44
25-01-2026
Issue
Section
License
Copyright (c) 2026 The Scientific Temper

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
