Topic: Algoritmo Knn per problema di predizione  (Letto 992 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Morris90

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Algoritmo Knn per problema di predizione
« il: Giugno 22, 2016, 18:22 »
Salve avrei bisogno di una mano con un progetto.
Considerando che sono alla prima esperienza di programmazione in python, dovrei svolgere un progetto per la predizione (con l'utilizzo dell'algoritmo knn) di un genere di un film, dato in input, avendo un dataset del tipo




NOME FILM------NUMERO DI SCENE DI AZIONE-------NUMERO DI BACI-------GENERE FILM (Romantico-Gangster)







Qualcuno può darmi una mano o può passarmi qualche discussione in merito con soluzioni per problemi similari?




Grazie per la disponibilità

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1.654
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re: Algoritmo Knn per problema di predizione
« Risposta #1 il: Giugno 22, 2016, 19:51 »
Credo che in scikit-learn ci sia qualcosa di già fatto, puoi prenderne spunto/usarlo/confrontare i risultati.

Offline Morris90

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: Algoritmo Knn per problema di predizione
« Risposta #2 il: Giugno 22, 2016, 21:34 »
Puoi dirmi dove?

Offline Python

  • python sapiens sapiens
  • ******
  • Post: 2.045
  • Punti reputazione: 2
  • Radon - Cyclomatic Complexity of your Python code
    • Mostra profilo
    • Radon - Cyclomatic Complexity of your Python code
Re: Algoritmo Knn per problema di predizione
« Risposta #3 il: Giugno 23, 2016, 11:48 »
Qui:
http://scikit-learn.org/stable/modules/neighbors.html

Ma in questo modo completi la parte principale del tuo progetto in 3 linee di codice. Sarebbe più utile implementare l'algoritmo autonomamente usando numpy per esempio. Anche perché è abbastanza semplice.

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1.654
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re: Algoritmo Knn per problema di predizione
« Risposta #4 il: Giugno 23, 2016, 12:02 »
Infatti l'avevo proposto giusto per confronto risultati, tipo "ho implementato il knn, lo confronto con uno super efficiente e testato e vedo perché i risultati sono diversi se lo sono". Fa comodo avere una versione funzionante per confrontare.

Offline Morris90

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: Algoritmo Knn per problema di predizione
« Risposta #5 il: Giugno 23, 2016, 14:05 »
Potete spiegarmi meglio ragazzi? Sono davvero un principiante di python. Cosa consigliate?

Offline Morris90

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: Algoritmo Knn per problema di predizione
« Risposta #6 il: Giugno 24, 2016, 11:06 »
Ciao ragazzi, allora?
Mi date una mano su come progettare l'algoritmo e come creare il dataset?
Grazie

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: Algoritmo Knn per problema di predizione
« Risposta #7 il: Giugno 24, 2016, 13:45 »
Ciao. Credo che questo sia il genere di cose che raramente viene discusso in un forum. Solitamente queste nozioni le impari leggendo/studiando gli algoritmi. Se conosci l'algoritmo, se conosci il linguaggio, allora fai il mapping et voilá. Potrá non essere il codice  piú bello del mondo, ma alla fine hai l'algoritmo funzionante. Cos'e' che non ti e' chiaro? Credevo fosse scontato che tu il dataset ce l'avessi. Cos'e' che stai provando a fare? Un dataset puo' essere un file di testo, un csv, quello che e', tipo:

[codice]nome film; num scene azione; num baci; genere
abc;1;2;romantico
def;1;3;romantico
ghi;4;0;azione[/codice]

ecc ecc .. ora e' probabile che le stringhe siano e/o vadano codificate diversamente ( magari usando vettori: [01] = romantico, [10] = azione ? boh?)

Una volta ottenuto il dataset, be' devi capire come interpretare i dati, effettuare il cleaning dei dati (sono tutti i valori corretti?), ecc ecc ...

Insomma, a me pare una di quelle cose che oggi vengono spesso confuse (leggi: buzzwords) e vanno di moda: usare Machine learning per il recommender system. "voglio il recommender system, non so come funzioni l'algoritmo, non so come creare un dataset". Beh, ma scusa, allora cos'e' che vuoi fare? Paga qualcuno e questo lo fara' per te. Se vuoi imparare, questo tipo di domande non dovrebbero apparire sui forum, dato che ci sono risorse a volonta' online. Corsi gratuiti tipo su coursera, berkeley, ecc.

Offline Morris90

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: Algoritmo Knn per problema di predizione
« Risposta #8 il: Giugno 24, 2016, 16:53 »
Volevo solo consigli e link dal quale prendere spunto.
Per il dataset, meglio un csv o utilizzare un database? E poi, meglio tradurre quel romantico-gangster in 01-10 oppure lasciarli come stringa? E come è meglio agire per il knn? Io l'algoritmo lo conosco a livello matematico, volevo consigli su come procedere nella sua costruzione in python. Tutto quì, poi se volete pago un informatico. Penso che i forum siano utili proprio a questo.

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: Algoritmo Knn per problema di predizione
« Risposta #9 il: Giugno 24, 2016, 17:22 »
Ciao.

Ma vedi, la domanda "meglio un csv o dataset" indica esattamente cio' che temevo. A te non e' ancora chiaro cio' che vuoi fare ed e' per questo che per questo genere di cose e' meglio che o paghi un informatico, o leggi libri o impari sulla tua pelle. Considerando che sei nel forum, immagino che stai provando a fare la 3. Bene.

Quanto e' grosso il dataset? Chi deve usare questo dataset? Qual e' lo scopo del progetto? Scolastico? Un colloquio per ottenere un lavoro? Un progetto personale? 

Perche' se stai parlando di un dataset di 10 megabyte di dati, allora ti direi CSV. Se stiamo parlando di 1 terabyte di dati, beh, allora probabilmente csv potrebbe essere ancora una buona idea, ma magari ti potremmo dare suggerimenti su come ottimizzare la lettura (con HDFS, ecc), oppure potremmo pensare a come usare qualcosa tipo Hive.

Se conosci bene l'algoritmo e il modello matematico, sai pure quali siano le conseguenze del lasciare una stringa come tale in un algoritmo di ML/DL.

Insomma, scusa se te lo dico, ma a me pare di vedere che tu non fai nessuno sforzo per imparare. Stai cercando di imparare, si', ma tu vuoi tutto bello pronto. Altri utenti ti hanno gia' indirizzato verso le risorse giuste. Se conosci l' algoritmo e il modello matematico, puoi iniziare con quello e piano piano vedere come migliorare.

Offline Morris90

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: Algoritmo Knn per problema di predizione
« Risposta #10 il: Giugno 24, 2016, 17:41 »
Il dataset dovrà essere composto da almeno una 50ina di film, niente più.
Il progetto mi serve per un esame universitario. Sai com'è, ti chiedono un progetto in python senza averlo mai studiato e senza darti materiali a riguardo. Provenendo da linguaggi tipo C, java, php, so cosa significa programmare e tale progetto sarebbe stato estremamente facile. Ma quì non conoscendo librerie in python o addirittura la sintassi, mi sento disperso.
Non volevo approfittare di voi e scusate se l'ho dato a vedere.
Buona giornata!

Offline Python

  • python sapiens sapiens
  • ******
  • Post: 2.045
  • Punti reputazione: 2
  • Radon - Cyclomatic Complexity of your Python code
    • Mostra profilo
    • Radon - Cyclomatic Complexity of your Python code
Re: Algoritmo Knn per problema di predizione
« Risposta #11 il: Giugno 24, 2016, 19:40 »
Estremamente facile con Php e C? Non credo. Al massimo con C, ma con Php?

Se non conosci Python, ti suggerirei di imparare prima quello, altrimenti ti ritroverai a fare tentativi casuali che ti faranno perdere un sacco di tempo.

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: Algoritmo Knn per problema di predizione
« Risposta #12 il: Giugno 25, 2016, 09:52 »
Sai com'è, ti chiedono un progetto in python senza averlo mai studiato e senza darti materiali a riguardo. Provenendo da linguaggi tipo C, java, php, so cosa significa programmare e tale progetto sarebbe stato estremamente facile. Ma quì non conoscendo librerie in python o addirittura la sintassi, mi sento disperso.

Benissimo! Hai individuato il problema, ora la soluzione e' una ed una sola: studiare (Python). Per questo ci sono varie risorse online. Il tutorial di python (su python.org) e' il primo a cui darei un'occhiata. Considerando che conosci gia' C/Java/Php imparare Python ti richiedera'  pochi giorni. Dopo di che saprai gia'  come utilizzare la libreria suggerita sopra. Insomma, se avessi iniziato ad imparare Python gia' quando hai aperto il topic, a quest'ora probabilmente gia'  avresti il tuo algoritmo pronto.