Vai al contenuto


Foto
- - - - -

OndaStatistics


  • Please log in to reply
123 replies to this topic

#1 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 04 agosto 2012 - 18:48

Se ho capito bene qua dentro c'è qualcuno che studia/ha studiato statistica o che comunque ci ha a che fare spesso, creiamo 'sto ritrovo per problemi legati alla materia? :D

Primo quesito: vorrei fare un esercizio abbastanza stupido, niente di complesso, e analizzare dei dati di vendita per vedere se ci sono delle strutture, delle regolarità di abbinamento negli acquisti di diversi articoli. In una parola una cluster analysis.

Ho a disposizione dei dati sulla base degli ordini di vendita, esempio:

Ordine Materiale

1 A
1 B
1 C
2 A
2 B
3 B
3 C

Il dubbio che ho è sul come costruire la matrice delle distanze anzi dissimilarità visto che è un carattere qualitativo, no? da dare in input alla cluster per produrre il dendogramma finale.

L'idea era di costruire un'indice che faccia il rapporto fra il numero di ordini che due articoli hanno in comune e il numero totale di ordine che comprendono i due articoli.
Come idea:.....la dimensione dell'intersezione diviso la dimensione del'insieme unione.

Ho googlato poco e male finora, ma mi è saltato fuori il nome dell'indice di Jaccard, che non ho ancora capito se fa al caso mio o no :mellow:

Ah, come strumento principale userei R.. avete idea se esiste già un qualche pacchetto/funzione che faccia cose simili??
  • 0

#2 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 04 agosto 2012 - 19:03

Buttiamo dentro altra carne al fuoco e altri termini per l'indicizzazione di Google asd

Il nome di questo tipo di esercizi statistici è Market Basket Analysis.

L'indice di Jaccard potrebbe fare al caso mio, ma se ho capito bene ha bisogno di una tabella binaria per funzionare, una riga per ogni ordina di vendita, una colonna per ogni articolo, 0 o 1 se quell'articolo è presente o meno in quell'ordine di vendita.
  • 0

#3 debaser

debaser

    utente stocazzo

  • Members
  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 21869 Messaggi:

Inviato 04 agosto 2012 - 20:30

In genere quando si parla di market basket analysis* si parla di regole di associazione più che di clustering, cioè si trovano le regole che siano sostenute da un certo supporto e confidenza (termini italiani orribili) che sono rispettivamente la probabilità che due item siano insieme P(A U B) e la probabilità condizionata che appaia B dato A (P(B|A)). La "confidenza" non è simmetrica ovviamente, quindi non credo si possa usare come misura di dissimilarità.


*Per quanto ne so, la mia esperienza è solo corso universitario su data mining, che non è molto.


No niente, Jaccard è come la distanza Tanimoto, direi che lo puoi usare. Identifichi un articolo come il vettore di occorrenze in ogni basket. Quindi sì, c'avrai un matricione bello sparso, di dimensione #articolo x #scontrini, che non è male

Oppure potresti usare la cosine similarity


Comunque sono un ignorante in statistica, stavo proprio pensando adesso che dovrei mettermi a studiarla per bene (non giusto le applicazioni). Ho fatto un paio di corsi ma non m'hanno lasciato troppo.
  • 0

Codeste ambiguità, ridondanze e deficienze ricordano quelle che il dottor Franz Kuhn attribuisce a un'enciclopedia cinese che s'intitola Emporio celeste di conoscimenti benevoli. Nelle sue remote pagine è scritto che gli animali si dividono in (a) appartenenti all'Imperatore, (b) imbalsamati, c) ammaestrati, (d) lattonzoli, (e) sirene, (f) favolosi, (g) cani randagi, (h) inclusi in questa classificazione, (i) che s'agitano come pazzi, (j) innumerevoli, (k) disegnati con un pennello finissimo di pelo di cammello, (l) eccetera, (m) che hanno rotto il vaso, (n) che da lontano sembrano mosche.
 
non si dice, non si scrive solamente si favoleggia


#4 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 05 agosto 2012 - 13:19

Cosine similarity è un buon input, approfondisco. Grazie.

Ora tutto sta nel costruirsi la matrice binaria, dovrebbe bastare una pivot.
  • 0

#5 Ortodosso

Ortodosso

    baby even the losers

  • Administrators
  • 9078 Messaggi:
  • LocationPortola Valley, CA

Inviato 06 agosto 2012 - 14:53

Cosine similarity is your friend, specialmente se usi R (o qualsiasi cosa con matrici native) perchè alla fine non è che il dot product di due vettori (L2 normalized).


[color=#586E75 !important]// A matrix where the cell (i, j) is 1 iff user i is followed by user j. [/color]
[color=#93A1A1][color=#CB4B16 !important]val[/color] [color=#268BD2 !important]followerMatrix[/color] [color=#CB4B16 !important]=[/color] ... [/color][color=#93A1A1] [/color]
[color=#93A1A1][color=#586E75 !important]// A matrix where cell (i, j) holds the cosine similarity between[/color] [/color][color=#93A1A1][color=#586E75 !important]// user i and user j, when both are represented as sets of their followers.[/color] [/color]
[color=#93A1A1][color=#CB4B16 !important]val[/color] [color=#268BD2 !important]followerBasedSimilarityMatrix[/color] [color=#CB4B16 !important]=[/color] [/color][color=#93A1A1] [color=#268BD2 !important]followerMatrix[/color].[color=#268BD2 !important]rowL2Normalize[/color] * [color=#268BD2 !important]followerMatrix[/color].[color=#268BD2 !important]rowL2Normalize[/color].[color=#268BD2 !important]transpose[/color][/color]

o anche senza matrici:

[color=#93A1A1][color=#CB4B16 !important]object[/color] [color=#D33682 !important]CosineSimilarity[/color] [color=#CB4B16 !important]extends[/color] [color=#D33682 !important]SimilarityMetric[/color][[color=#2AA198 !important]Int[/color]] { [/color][color=#93A1A1] [/color]
[color=#93A1A1][color=#586E75 !important]/**[/color] [/color][color=#93A1A1][color=#586E75 !important] * Returns the cosine similarity between two sets, 0 if both are empty.[/color] [/color][color=#93A1A1][color=#586E75 !important] */[/color] [/color][color=#93A1A1] [/color]
[color=#93A1A1][color=#CB4B16 !important]def[/color] [color=#268BD2 !important]apply[/color]([color=#268BD2 !important]set1[/color][color=#CB4B16 !important]:[/color] [color=#2AA198 !important]Set[/color][[color=#2AA198 !important]Int[/color]], [color=#268BD2 !important]set2[/color][color=#CB4B16 !important]:[/color] [color=#2AA198 !important]Set[/color][[color=#2AA198 !important]Int[/color]])[color=#CB4B16 !important]:[/color] [color=#2AA198 !important]Double[/color] = { [/color][color=#93A1A1] [/color]
[color=#93A1A1][color=#CB4B16 !important]if[/color] ([color=#268BD2 !important]set1[/color].[color=#268BD2 !important]size[/color] == [color=#2AA198 !important]0[/color] && [color=#268BD2 !important]set2[/color].[color=#268BD2 !important]size[/color] == [color=#2AA198 !important]0[/color]) { [/color][color=#93A1A1] [color=#2AA198 !important]0[/color] [/color][color=#93A1A1] [/color]
[color=#93A1A1]} [color=#CB4B16 !important]else[/color] { [/color][color=#93A1A1] [/color]
[color=#93A1A1]([color=#268BD2 !important]set1[/color] & [color=#268BD2 !important]set2[/color]).[color=#268BD2 !important]size[/color].[color=#268BD2 !important]toFloat[/color] / ([color=#268BD2 !important]math[/color].[color=#268BD2 !important]sqrt[/color]([color=#268BD2 !important]set1[/color].[color=#268BD2 !important]size[/color] * [color=#268BD2 !important]set2[/color].[color=#268BD2 !important]size[/color])) [/color][color=#93A1A1] [/color]
[color=#93A1A1]} [/color][color=#93A1A1] [/color]
[color=#93A1A1]} [/color][color=#93A1A1] [/color]
[color=#93A1A1]} [/color]


E poi la puoi visualizzare alla grande così: http://bost.ocks.org/mike/miserables/
  • 0

Battibecco dovete domandare a Sarri, che è un razzista; e gli uomini come lui non possono stare nel mondo del calcio.


#6 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 06 agosto 2012 - 15:55

Ecco questo è una figata ma è ancora lontano dal mio livello :P

Nel frattempo vorrei fare una cosa "quick and dirty" (Poi con calma mi studio un'approccio più serio...)
Creando le combinazioni semplici all'interno di ogni ordine e contandole, una sorta di algoritmo Apriori alla buona.
Però non so come costruire l'automatismo per creare la combinazioni, tipo, il primo ordine:

1 A
1 B
1 C

dovrebbe darmi:

{A,B}
{A,C}
{C,B}
{A,B,C}

di modo che poi, avendo tutte le combinazioni, posso contarle (calcolare il supporto in sostanza)
Si può?
  • 0

#7 Ortodosso

Ortodosso

    baby even the losers

  • Administrators
  • 9078 Messaggi:
  • LocationPortola Valley, CA

Inviato 06 agosto 2012 - 20:50

http://stat.ethz.ch/...html/combn.html
  • 0

Battibecco dovete domandare a Sarri, che è un razzista; e gli uomini come lui non possono stare nel mondo del calcio.


#8 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 07 agosto 2012 - 12:15

Lo metto qua come bookmark :D

Market Basket Analysis using R:

http://picksesame.bl...is-using-r.html
  • 0

#9 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 24 settembre 2012 - 21:37

http://www.hilarymas...-at-my-company/

:firuli: ;D
  • 2

#10 Ortodosso

Ortodosso

    baby even the losers

  • Administrators
  • 9078 Messaggi:
  • LocationPortola Valley, CA

Inviato 24 settembre 2012 - 22:24

Flying under the radar proprio
  • 0

Battibecco dovete domandare a Sarri, che è un razzista; e gli uomini come lui non possono stare nel mondo del calcio.


#11 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 16 ottobre 2012 - 21:37

Ho comprato " R for Dummies" che credo non aggiungerà nulla alle mie seppur poche conoscenze ma spero che cementi un po' le basi :D
  • 0

#12 debaser

debaser

    utente stocazzo

  • Members
  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 21869 Messaggi:

Inviato 16 ottobre 2012 - 21:45

Ho comprato " R for Dummies" che credo non aggiungerà nulla alle mie seppur poche conoscenze ma spero che cementi un po' le basi :D


Se vuoi ci sono un paio di corsi su Coursera che possono fare al caso tuo
  • 0

Codeste ambiguità, ridondanze e deficienze ricordano quelle che il dottor Franz Kuhn attribuisce a un'enciclopedia cinese che s'intitola Emporio celeste di conoscimenti benevoli. Nelle sue remote pagine è scritto che gli animali si dividono in (a) appartenenti all'Imperatore, (b) imbalsamati, c) ammaestrati, (d) lattonzoli, (e) sirene, (f) favolosi, (g) cani randagi, (h) inclusi in questa classificazione, (i) che s'agitano come pazzi, (j) innumerevoli, (k) disegnati con un pennello finissimo di pelo di cammello, (l) eccetera, (m) che hanno rotto il vaso, (n) che da lontano sembrano mosche.
 
non si dice, non si scrive solamente si favoleggia


#13 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 23 ottobre 2012 - 21:51

Ho letto ora (dio solo sa perché non mi è arrivata la notifica..) hai un link? :)
  • 0

#14 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 23 novembre 2012 - 19:04

Alla fine immagino il corso fosse quello del tipo di simplystatistics: http://simplystatistics.org/
che purtroppo ho perso ma al prossimo giro se lo rifa mi iscrivo (anche se non ho bene idea di come funziona Coursera :P )

Altro blog che seguo da un po' è questo http://www.r-bloggers.com/ che fa da aggregatore di altre fonti per news e tutorial su R.
  • 0

#15 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 14 dicembre 2012 - 14:35

http://simplystatist...alysis-returns/

:D
  • 0

#16 lasa

lasa

    mainstream Star

  • Members
  • StellettaStellettaStellettaStellettaStelletta
  • 2023 Messaggi:

Inviato 04 marzo 2013 - 10:26

[m]http://www.youtube.com/watch?v=yU2qQywUnnU[/m]
  • 0

#17 botty

botty

    mi chiamo nenzi

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 5477 Messaggi:

Inviato 14 maggio 2013 - 02:49

è sicuramente una cazzata ma non sto capendo, non diludetemi

se ho la matrice di un set e il tipo di dati richiede la regressione PLS quando devo fare il grafico delle risposte come decido se la cross validation la voglio leave one out o leave more out?
  • 0

I aim to misbehave


#18 Ortodosso

Ortodosso

    baby even the losers

  • Administrators
  • 9078 Messaggi:
  • LocationPortola Valley, CA

Inviato 14 maggio 2013 - 03:09

C'è un buon corso in python su coursera adesso, appena iniziato: https://www.coursera.../course/datasci

bello, molto più pratico rispetto a quello di Ng.
  • 0

Battibecco dovete domandare a Sarri, che è un razzista; e gli uomini come lui non possono stare nel mondo del calcio.


#19 strafanich

strafanich

    Classic Rocker

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 3595 Messaggi:

Inviato 14 maggio 2013 - 07:50

C'è un buon corso in python su coursera adesso, appena iniziato: https://www.coursera.../course/datasci

bello, molto più pratico rispetto a quello di Ng.

Mi ero enrollato ma non riesco purtroppo a seguirlo come si deve, ma mi sto scaricando i video delle lectures almeno :)
Il problem è che senza gli assignments il corso è monco se non inutile..
  • 0

#20 debaser

debaser

    utente stocazzo

  • Members
  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 21869 Messaggi:

Inviato 14 maggio 2013 - 11:28

è sicuramente una cazzata ma non sto capendo, non diludetemi

se ho la matrice di un set e il tipo di dati richiede la regressione PLS quando devo fare il grafico delle risposte come decido se la cross validation la voglio leave one out o leave more out?

leave one out è il meglio che puoi fare, parlando di k-fold. se puoi farlo, i.e. hai un metodo che costa poco e/o i dati non sono troppi, fallo.
con k<n fai comunque un compromesso.
  • 1

Codeste ambiguità, ridondanze e deficienze ricordano quelle che il dottor Franz Kuhn attribuisce a un'enciclopedia cinese che s'intitola Emporio celeste di conoscimenti benevoli. Nelle sue remote pagine è scritto che gli animali si dividono in (a) appartenenti all'Imperatore, (b) imbalsamati, c) ammaestrati, (d) lattonzoli, (e) sirene, (f) favolosi, (g) cani randagi, (h) inclusi in questa classificazione, (i) che s'agitano come pazzi, (j) innumerevoli, (k) disegnati con un pennello finissimo di pelo di cammello, (l) eccetera, (m) che hanno rotto il vaso, (n) che da lontano sembrano mosche.
 
non si dice, non si scrive solamente si favoleggia





0 utente(i) stanno leggendo questa discussione

0 utenti, 0 ospiti, 0 utenti anonimi

IPB Skin By Virteq