Je n'ai jamais vraiment trouvé de bon texte ou d'exemples sur la façon de gérer les données «inexistantes» pour les entrées de n'importe quel classificateur. J'ai beaucoup lu sur les données manquantes mais que peut-on faire sur les données qui ne peuvent pas exister ou qui n'existent pas par rapport aux entrées multivariées. Je comprends que cette question est très complexe et variera en fonction des méthodes de formation utilisées ...
Par exemple, si vous essayez de prévoir le temps de l'ordinateur portable pour plusieurs coureurs avec de bonnes données précises. Parmi de nombreuses entrées, les variables possibles parmi de nombreuses sont:
- Variable d'entrée - Premier coureur (O / N)
- Variable d'entrée - Temps passé sur le portable (0 - 500 secondes)
- Variable d'entrée - Âge
- Variable d'entrée - Hauteur. . . beaucoup plus de variables d'entrée, etc.
& Output Predictor - Prediction Laptime (0 - 500 secondes)
Une `` variable manquante '' pour `` 2.Heure d'ordinateur portable précédente '' pourrait être calculée de plusieurs manières mais `` 1. Premier coureur 'serait toujours égal à N. Mais pour «DONNÉES NON EXISTANTES» pour un premier coureur (où «1. Premier coureur» = Y) quelle valeur / traitement dois-je donner pour «2. Ordinateur portable précédent »?
Par exemple, attribuer «2. L'ordinateur portable précédent '-99 ou 0 peut fausser considérablement la distribution et donner l'impression qu'un nouveau coureur a bien performé.
Mes méthodes de formation actuelles utilisent des arbres de régression logistique, SVM, NN et décisionnels
la source
Réponses:
Au lieu d'attribuer une valeur spéciale au temps du tour précédent du premier coureur inexistant, utilisez simplement le terme d'interaction pour le temps du tour précédent avec l'inverse du mannequin du premier coureur:
ici
Ensuite, le modèle pour les premiers coureurs sera:
et pour les non coureurs débutants:
la source
Pour une régression logistique ajustée par maximum de vraisemblance, tant que vous avez à la fois (1) et (2) dans le modèle, quelle que soit la valeur "par défaut" que vous donnez aux nouveaux coureurs pour (2), l'estimation pour (1) s'ajustera en conséquence.
Par exemple, supposons que soit la variable indicatrice de "est un nouveau coureur" et la variable "heure précédente du portable en secondes". Le prédicteur linéaire est alors:X1 X2
Si la valeur par défaut pour est zéro, le prédicteur linéaire pour un nouveau coureur est:X2
alors que pour un coureur existant, ce sera:
Supposons maintenant que vous modifiez la valeur par défaut pour de 0 à -99. Ensuite, le prédicteur linéaire pour un nouveau coureur est maintenant:X2
mais pour un coureur existant, il restera le même. Donc, tout ce que vous avez fait est de reparamétrer le modèle, de telle sorte que , et comme la probabilité maximale est invariante à la parémétérisation, les estimations s'ajusteront en conséquence.β′1−99β2=β1
Bien sûr, si vous n'utilisez pas le maximum de vraisemblance (c'est-à-dire que vous utilisez une sorte de pénalisation ou prioritaire sur les paramètres), alors vous allez obtenir des valeurs différentes à moins que vous ajustiez la pénalisation / prior en conséquence. Et si le modèle est non linéaire (par exemple SVM, NN et arbres de décision), alors cet argument ne fonctionne pas du tout.
la source