Je construis un réseau neuronal pour prédire la valeur d'une œuvre d'art avec un large éventail d'entrées (taille, support artistique, etc.) et je voudrais également inclure l'auteur en tant qu'entrée (c'est souvent un énorme facteur de la valeur d’une seule œuvre d’art).
Ma préoccupation actuelle est que le nom de l'auteur n'est pas une entrée numérique idéale pour un NN (c'est-à-dire si je code simplement chaque auteur avec une valeur entière croissante, j'attribuerai indirectement plus de valeur aux auteurs plus bas dans la liste -_-) . Mes pensées étaient de créer des entrées distinctes pour tous les auteurs de mon ensemble de données, puis d'utiliser simplement un encodage à chaud pour mieux représenter l'entrée dans le NN.
Cette approche se heurte cependant à un problème lorsqu'un auteur qui n'est pas inclus dans mes données de formation est utilisé comme entrée dans le NN (c'est-à-dire un nouvel auteur). Je peux contourner cela avec un champ de saisie "autre auteur" mais je crains que ce ne soit pas exact car je n'aurais pas formé le NN pour cette entrée (toutes les œuvres d'art avec une évaluation ont un auteur).
Je n'ai pas complètement réfléchi à cela, mais j'ai pensé à peut-être former 2 NN, un pour une évaluation sans auteur et un pour une évaluation avec un auteur pour m'assurer d'avoir suffisamment de données de formation pour qu'une "évaluation sans auteur" soit toujours raisonnablement précise.
J'essaie toujours de conceptualiser la meilleure architecture NN avant de rester coincé dans la mise en œuvre, donc si quelqu'un a des suggestions / commentaires, je serais très reconnaissant!
Merci d'avance, Vince
PS Je fais cela comme une petite compétition avec un ami pour tester un NN par rapport aux techniques traditionnelles d'évaluation commerciale. S'il vous plaît, aidez-moi à gagner une victoire en informatique par rapport à l'actuariat.
la source
Réponses:
L'approche la plus simple que je recommanderais serait la solution d'encodage à chaud sans fonctionnalité pour `` autre auteur ''. Si vous utilisez l'abandon pendant la formation, le réseau devrait apprendre à gérer les vecteurs d'entrée qui n'ont pas de fonctionnalités d'auteur définies sur 1. Ensuite, chaque fois que vous avez un auteur inconnu, vous n'avez tout simplement pas de 1 pour tout des auteurs-fonctionnalités, et il aurait encore dû apprendre à y faire face.
Une autre approche possible serait un codage à chaud avec une fonctionnalité pour '' autre auteur ''. Afin d'obtenir toujours des données d'entraînement pour ce poids, vous pouvez simplement utiliser l'augmentation des données. L'approche d'augmentation de données la plus simple consiste à créer des copies des instances dans vos données de formation, mais pour ces copies, définissez la fonction `` autre auteur '' sur 1 au lieu de l'auteur réel.
La solution la plus complexe à laquelle je peux penser consisterait à prendre la représentation sous forme de chaîne de l'auteur, à essayer de faire en sorte que votre programme trouve des informations sur cet auteur en ligne (par exemple, essayez de rechercher une page wikipedia), à pousser tout ce texte à travers un LSTM. La `` couche de sortie '' du LSTM peut ensuite être fusionnée avec vos autres fonctionnalités (ces deux ensemble seront votre `` vecteur d'entrée ''), empiler quelques couches supplémentaires par-dessus et former l'ensemble de la chose. finir. À moins que la compétition avec votre ami n'implique une somme d'argent importante, cela sera probablement trop compliqué pour en valoir la peine.
la source
J'essaierais de trouver des fonctionnalités de proxy sur l'auteur, par opposition à coder l'identité de l'auteur. Les bonnes caractéristiques probables d'un auteur incluent des moyennes d'autres caractéristiques de l'œuvre (telles que la taille, les types de supports, etc.) et, pour votre prédiction, certaines statistiques sur les prix de vente précédents de toutes les œuvres. N'oubliez pas que les données de formation historiques incluent les données de proxy telles qu'elles apparaissaient au moment de la vente.
La possession de ces procurations est susceptible de fonctionner beaucoup mieux que le codage à chaud d'une identité d'auteur et que l'algorithme ML attribue des pondérations en fonction de la seule identité, en particulier pour les auteurs avec seulement de petites quantités de données pour les représenter.
Pour autant que je sache, il y a peu de raisons de s'attendre à ce que la chaîne de caractères du nom d'un auteur soit en corrélation avec la valeur de l'œuvre. Il peut y avoir un bon ou un mauvais effet de nom de marque , mais je pense que ce sera très difficile à prévoir même en dehors d'autres facteurs, et l'inclusion de données de vente historiques devrait tenir compte de cet effet et d'effets similaires, sauf pour les artistes sans histoire connue.
la source