2017-05-04 2 views
0

Je travaille sur un modèle qui permettra de prédire un nombre d'autres opinions. Pour cela, je vais utiliser la régression linéaire de Sklearn. Par exemple, j'ai 5 agents à partir desquels je collecte des données au cours du temps de leurs dernières modifications à chaque itération, si elles ne l'ont pas encore inséré, les données contiennent Nan, jusqu'à leur première modification. Les données ressemblent à ceci:Régression linéaire contenant Nans

a1 a2 a3 a4 a5 target 
1 nan nan nan nan 3  4.5 
2 4 nan nan nan 3  4.5 
3 4 5 nan nan 3  4.5 
4 4 5 5 nan 3  4.5 
5 4 5 5 4 3  4.5 
6 5 5 5 4 3  4.5 

Donc à chaque itération/changement je veux prédire le nombre final. Comme nous le savons, la régression linéaire ne vous permet pas d'avoir an = Nan's dans les données. Je les remplace par an = 0, qui ne ruine pas la réponse, car la formule de régression linéaire est: result = a1*w1 + a2*w2 + ... + an*wn + c.

Questions actuelles j'ai en ce moment:

Est-ce que ma solution d'effets en quelque sorte sur ajustement? Y a-t-il une meilleure solution pour mon problème? Dois-je apprendre mon modèle uniquement avec des données complètes que de l'utiliser avec la solution actuelle?

+0

Il va essayer de trouver un coefficient pour a1 = 0 qui minimise la fonction de perte. Vous n'utiliserez pas ce coefficient quand a1 est nul mais vous l'utiliserez quand ce n'est pas le cas. Donc, cela va certainement affecter vos résultats. Cela dit, vous devriez le demander sur [Cross Validated] (https://stats.stackexchange.com/). – ayhan

Répondre

1

Le réglage de nan à 0 et l'apprentissage d'une régression linéaire pour trouver des coefficients pour chacune des variables est fin en fonction du cas d'utilisation.

Pourquoi?

Vous êtes essentiellement entrainer le modèle et lui dire que pour de nombreuses lignes - l'importance de la variable a1, a2, etc (lorsque la valeur est nan et mis à 0).

Si les NAN sont dus au fait que les données n'ont pas encore été renseignées, il est incorrect de les paramétrer sur 0 et d'entraîner votre modèle. Il est préférable de former votre modèle après que toutes les données ont été entrées (au moins pour tous les agents qui ont entré des données). Cela peut être utilisé plus tard pour prédire les nouveaux agents. Sinon, vos coefficients seront sur-ajustés pour les 0 (NAN) si de nombreux agents n'ont pas encore entré leurs données. En fonction de la cible finale (qui est une variable continue), la régression linéaire est une bonne approche à suivre.