6
votes

Apprentissage de base de la machine

Je développe un outil où j'ai besoin de prédire une valeur d'une variable basée sur la combinaison d'un certain nombre de variables.

La mise en œuvre doit être dans la langue de programmation Java.

Merci.


4 commentaires

Est-ce que ce devoir?


Non :) Je sais que ma question est très abstraite ... j'ai besoin d'une idée de lancer mon travail ...


Je vous recommande vivement de jeter un coup d'œil à Weka ( cs.waikato.ac.nz/ml / Weka ) - Très bons outils d'apprentissage automatique basés sur Java


Sans plus de détails, les conseils que vous recevrez sont peu susceptibles d'être très utiles pour votre tâche spécifique.


9 Réponses :


3
votes

Peut-être que vous pouvez commencer par chercher wikipedia pour divers algorithmes de classification comme k-voisin le plus proche , svm ou réseau neural


0 commentaires

6
votes

Il existe un bon parcours ouvert de Stanford sur l'apprentissage de la machine avec des conférences vidéo, etc. Jetez un coup d'œil ici .


0 commentaires

4
votes

Si vous voulez commencer quelque chose de simple, envisagez un modèle quasi-linéaire, tel que la régression logistique ou l'analyse discriminante linéaire: ils sont faciles à comprendre et qu'il y a de code pour eux partout sur Internet. Considérez également certains des modèles de neurones plus simples (un seul noeud) (Perceptron, Delta Règle, etc.): ils sont très faciles à programmer. Si vous voulez poursuivre cela, je suggère d'obtenir un livre, tel que "Systèmes informatiques qui apprennent", par Weiss et Kulikowski.


0 commentaires

1
votes

sonne comme une régression linéaire variée multiples ferait le travail.


0 commentaires

2
votes

Je commencerais également avec K-les plus proches-voisins - ils sont les plus simples - et on peut expérimenter avec différentes prétraites de données, mesures de distance, etc. Ils conduisent également à des prédictions très bonnes (bien très lentes).


0 commentaires

2
votes

Si la variable à prédire est une solution continue, les modèles de régression sont la clé. De nombreuses techniques de régression sont là dont les moindres carrés, les modèles polynomiaux, Ann et SVM. Bien sûr, chaque technique peut avoir son hypothèse ou ses paramètres.

MATLAB est l'un des environnements informatiques bien documentés. Je conseillerais de visiter la page suivante de la documentation MATLAB sur la régression non linéaire: http://www.mathworks.com/help/stats /nonlinear-regressions-1.html#btcgzas-1

Vous pouvez commencer à utiliser une méthode de recherche globale telle que des algorithmes génétiques gaz pour régler les paramètres d'un modèle de régression polynomiale donné.

Pour prédire les variables discrètes, les modèles de régression répertoriés peuvent être appliqués également un seuil. Les arbres de décision peuvent être une bonne alternative.


0 commentaires

0
votes

Avant de plonger dans le code, puisque vous êtes débutant, je vous suggérerais de lire sur les fondamentaux et de gagner une forte tenue à ce sujet. Vous n'avez pas besoin de lire une thèse de doctorat, mais au moins les terminologies de base dans SVMS, la régression logistique et les réseaux de neurones seraient utiles. Il y a beaucoup de matériel sur Internet via Stanford, Coursera Cours et livres suggéré dans d'autres réponses.

Même s'il existe un code prêt sur Internet à utiliser sur Internet, la raison pour laquelle je dis que vous devez lire les principes fondamentaux, c'est parce que dans un classificateur typique tel que SVM, réseau neuronal ou même régression logistique, il y a Différents paramètres que vous seriez tenus de syntoniser et sans compréhension des fondamentaux, ce serait difficile et déroutant d'utiliser ces packages. J'ai vu la même chose quand j'étais débutant.

Avec une maintien forte sur la manière de gérer un ensemble de données asymétrique dans SVM, comment syntoniser les paramètres d'une régression logistique, et même la manière de réduire les dimensions de votre ensemble de données, cela rendrait votre mise en œuvre plus rapide et plus efficace - que Comment vous pouvez obtenir une meilleure précision. Sinon, la plongée directe dans le code peut vous faire revenir ici avec des questions de base à nouveau. J'espère que c'était utile!


0 commentaires

2
votes

Weka conviendrait à votre besoin. Il a une régression et est mis en œuvre en Java.


0 commentaires

0
votes

Si c'est un problème de régression, je vous suggérerais de commencer par des choses comme une régression logistique ou linéaire à Matlab. Il y a des bibliothèques et vous pouvez obtenir du code tout autour pour cela. De cette manière, d'abord test et trouvez en comparant l'erreur dans l'échantillon (à partir de données que vous envisagez pour la production) et une erreur hors échantillonnage (pour tester vos prévisions contre les données qui n'ont pas été prises en compte pour la fabrication de ces prévisions) le nombre et l'ordre de Caractéristiques et quantité de données de formation dont vous avez besoin. Si les données de formation sont inférieures, utilisez moins de fonctionnalités ou de régularisation. Si le nombre et l'ordre des fonctionnalités sont très importants et difficiles à déterminer, déplacez-vous vers des réseaux neutres ou SVM (voir, s'il ya une bibliothèque SVM pour Java) et lorsque vous avez un système parfait dans Matlab, puis le déploiez-le en Java. Autant que je sache, les systèmes ML nécessitent un bon accord manuel de réglage manuel avant de devenir conviviaux pour une utilisation pratique et des environnements tels que Matlab / OCATVE sont les meilleures plateformes pour ce réglage fin.


0 commentaires