Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  24 6369
Hei! Jeg trenger hjelp til å sette noen ting samme i python som jeg har suttet fast i i noen dager nå. For å få til dette så trengs det en som er over middels god i python, og spørsmålet her er er om noen har det som skal til for å hjelpe og veilede? Da tenker jeg forsåvidt over en skype samtale(Jeg betaler for dette).

Jeg legger ved noen stikkord under, og dersom du tror du har peiling på dette så vær grei og ta kontakt!

- Poission distribution
- Normal distribution
- Generere matriser med dette som er nevnt ovenfor og få det til å henge sammen og kunne vise sammenhenger og grafer.
- Og litt mer.

Hadde blitt veldig takknemlig om noen kunne hjulpet!
Dette er for en skoleoppgave eller noe? Hva har du forsøkt fra før av? Hvor er det du sitter fast?

Programmeringsforumet forutsetter at man har et minimum av kunnskap og at man har gjort et hederlig forsøk før man spør om hjelp, og for meg virker det mer som om du plutselig innså at det var på tide å lære seg Python like før innleveringsfristen på en skoleoppgave.

Først av alt vil jeg si at Python definitivt kan løse den typen problemer du lister opp, men jeg vil ikke hevde at den er optimal til jobben. Her er nok et matematikk-program som Matlab (ev. Mathematica, men jeg har ikke brukt det) bedre egnet, rett og slett fordi alt du trenger er innebygd og påtenkt fra begynnelsen. Matlab tolker f.eks. alt som matriser, og du kan inspisere variablene i form av matriser, samt har muligheten for plotting til skjerm på en veldig enkel måte. Slike programmer er derimot dyre, så det fordrer at du faktisk går på en skole, og de har lisenser til dette. Om ikke er Octave et alternativ til Matlab.

I Python blir du nesten nødt til å laste ned numpy og matplotlib for å få gjort det du ønsker. numpy har poisson-fordeling, normalfordeling, støtte for matriser osv. Disse modulene er også skrevet som C-extensions, så de er slettes ikke dårlig på fart. Ulempen er en ganske stygg numpy-syntaks, men det er massevis av hjelp å få på internett. Matplotlib er en modul for å plotte grafer, og er ganske kraftig om du først dykker ned i dokumentasjonen.
Gjest
Trådstarter
Det er ikke for en skoleoppgave, men for et fremtidig prosjekt. Der jeg sitter fast er å tolke disse tallene jeg får ut og kunne jobbe videre med dette(lettere å forklare via en skype/telefon samtale enn her). Dette er noe jeg forøvrig har suttet fast i flere dager på.

Ja, jeg kan python, alt fra å lage koder, lister, matriser, IF og else setninger, for each løkker osv.

Jeg kjenner også til numpy, scipy, matplotlib og de bibliotekene der, og klarer fint å bruke dette. Jeg foretrekker heller å bruke dem enn Matlab da jeg ikke er så kjent med programmet og er mer fan av python(jeg har faktisk matlab installert på pcen).

Om det er av interesse så kan jeg sende Python filer og koder av det jeg har gjort til nå på Email/privat melding etc.
Sist endret av random512377; 19. april 2018 kl. 10:45.
Jeg er nok ikke den beste til å løse dette, og du får unnskylde mistankene mine. Det er ganske mange her som ønsker alt servert på et sølvfat, uten å gjøre noe for det selv, og manglene på detaljer fikk posten din til å ligne disse.

Det beste er nok å prøve å koke ned eksempler på ting du sliter med til et minimalt eksempel med sensurerte data, og så ta de en etter en i offentlighet. Om ikke dette er mulig, så får du bare håpe at noen tar kontakt i stedet. Mange på forumet her kan deler av det du spør om, men har kanskje ikke så stor interesse for å tilby seg å svare på alt.
Nå er jeg ikke statistiker men har litt erfaring med Python. Poission og normal fordeling er numpy funksjoner. NP er ganske god på matriser. Matplotlib ordner grafer osv. Du har og kan visstnok alle verktøyene, hva er det du ikke får til?
Dette kan vel din bror hjelpe deg med? Han har jo master i informatikk, så han burde vel være kompetent nok og veldig skikket til oppgaven?

Han har jo også kommentert i en annen tråd du har laget, der han forteller at han kan en ting eller to om analyser og modeller i Python.

Sitat av giroud2 Vis innlegg
Ja, jeg kan python, alt fra å lage koder, lister, matriser, IF og else setninger, for each løkker osv.
Vis hele sitatet...
Ikke noe foreach i Python.

Sitat av giroud2 Vis innlegg
(Jeg betaler for dette).
Vis hele sitatet...
Hvor mye?
Hupp. Har en mastergrad i statistikk fra UiT, er sivil ingeniør i data teknikk og rimelig habil på Python. Stiller du spørsmålet åpent svarer jeg gratis.

Først av alt vil jeg si at Python definitivt kan løse den typen problemer du lister opp, men jeg vil ikke hevde at den er optimal til jobben. Her er nok et matematikk-program som Matlab (ev. Mathematica, men jeg har ikke brukt det) bedre egnet, rett og slett fordi alt du trenger er innebygd og påtenkt fra begynnelsen. Matlab tolker f.eks. alt som matriser, og du kan inspisere variablene i form av matriser, samt har muligheten for plotting til skjerm på en veldig enkel måte. Slike programmer er derimot dyre, så det fordrer at du faktisk går på en skole, og de har lisenser til dette. Om ikke er Octave et alternativ til Matlab.
Vis hele sitatet...
Jeg antar du ikke har drevet med sampling fra forskjellige sannsynlighetsfordelinger selv her?

1. R er desidert enkleste for alt som har med statistikk og sannsynligheter å gjøre. Sliter veldig så fort man har data som ikke passer inn i matriser.
2. Python med sklearn og numpy er ålreit nok for statistikk, men vinner overlegent på maskin-læring, fleksibilitet og listehåndtering. Trygt valg for det meste.
3. Matlab er desidert enklest for matematikk og alt som inneholder matrisemultiplikasjon, men virkelig ikke beste alternativet på statistikk.
Sist endret av DumDiDum; 19. april 2018 kl. 13:58.
Gjest
Trådstarter
Sitat av DumDiDum Vis innlegg
Hupp. Har en mastergrad i statistikk fra UiT, er sivil ingeniør i data teknikk og rimelig habil på Python. Stiller du spørsmålet åpent svarer jeg gratis.


Jeg antar du ikke har drevet med sampling fra forskjellige sannsynlighetsfordelinger selv her?

1. R er desidert enkleste for alt som har med statistikk og sannsynligheter å gjøre. Sliter veldig så fort man har data som ikke passer inn i matriser.
2. Python med sklearn og numpy er ålreit nok for statistikk, men vinner overlegent på maskin-læring, fleksibilitet og listehåndtering. Trygt valg for det meste.
3. Matlab er desidert enklest for matematikk og alt som inneholder matrisemultiplikasjon, men virkelig ikke beste alternativet på statistikk.
Vis hele sitatet...
Et praktisk eksempel: UiT har 6000 registrerte studenter. Daglig så går i gjennomsnitt 4000 inn døra til universitet. Vi vet at flesteparten av disse 4000 drar inn dit på morgenen(mellom 07.00 og 09.00), og færre og færre utover dagen og kvelden. Så med andre ord, så har vi en høy "terksel/topp" på morgenen som avtar senere på dagen som nevnt.

4000/ 24 = 166.66, altså 166.66 går inn i timen
166.66/60= 2,777, altså 2,777 går inn i minuttet
2,777/60 = 0,0462, 0,0462 går inn i sekundet.

Da vet vi gj.snittet der.

Så kan vi spørre: Hva er sjansen for at mellom kl 07.00-09.00, så har 2500 studenter gått inn?
- Og hvordan vil fordeling være resten av dagen?
Vel, første svaret er at du ikke vet, og at avhengig av hvilke antagelser du gjør kan du få mindre hva enn du vil som svar.

Det andre svaret er at her er du ute etter sannsynlighetsfordelinger som er (1) skjeive (2) Har en topp (rundt klokka 8 tipper jeg) (3) Har en lang hale ut mot høyre. Både beta distributionen (alfa 2, beta 5) og gamma (k 9, theta 0.5) distributionen oppfyller de kriteriene som modeller for hvilket tidspunkt en student vil komme. Gamma har en uendelig hale, så Beta blir nok beste alternativet.

Den late måten å svare på forskjellige kompliserte spørsmål er dermed å finne en god modell som passer bra for når en student vil komme, trekke 4000 studenter en ~3000 ganger og sjekke hva enn du vil på de fordelingene. Sannsynligheten for 2500 studenter før 0900 blir da (antall av de 3000 trekkene hvor mer enn 2500 studenter kom før 0900)/4000 f.x.

PS: (Hvis du har statistikk på UiT, hils Georg!)
PPS: (Hvis du sliter veldig kan jeg kode opp eksempel en gang i løpet av helga)
Distribusjonen kommer jo antakelig til å ha en topp rundt lunsjtider, og rundt alle starttider for forelesninger etc også. Du kommer neppe til å få en veldig god fit til en av de vanlige distribusjonene du lærer om i STAT101. Hva med å samle inn faktisk data en dag, og se på plottet hvordan det ser ut?
Gjest
Trådstarter
Casen over var bare et eksempel.
Du må nesten legge ut problemstillingen din her. Det er hele poenget med et forum. Hvis du vil ansette noen til å gjøre det for deg bør du heller sjekke ut finn.no.
Sitat av giroud2 Vis innlegg
Casen over var bare et eksempel.
Vis hele sitatet...
Chronic420 sier det greit, men problemet her er at du har kompetente folk som er villig til å hjelpe deg - helt gratis, om de bare får problemet. For du ser ikke ut til å forstå statistikk gitt ditt eget eksempel og utregning, så du er heller ikke kompetent til å vite om det du får av noen er korrekt.

Ergo er du mer tjent med å gi folkene her det faktiske problemet, og så kan folk med kompetanse se på problemet, diskutere seg imellom, og du får et bedre resultat. Jeg tror ikke du er klar over hvor takknemlig du bør være for at folk er så villige til å hjelpe at de takker nei til pengene, og vil ha utfordringen, være hjelpsom eller bare vise fram hva de kan for litt subkulturell kapital.
Gjest
Trådstarter
Her er oppgaven: I år 2016 var gjennomsnittstrafikk inn til Trondheim følgende:

Vest: 87000 biler kom inn daglig til byen i gjennomsnitt inn vest
Nord: 30482 biler kom inn daglig til byen i gjennomsnitt fra nord
Øst: 92421 biler kom inn daglig til byen i gjennomsnitt fra øst
sør: 62500 biler kom inn dagllg til byen i gjennomsnitt fra sør

Hver dag mellom 08.00-10.00 og fra 15.00-17.00 så er trafikk rushet som høyest inn til byen

Velg en distribusjon (poission,normal), begrunn hvorfor du har valgt, som viser toppene i grafen og hvordan
tallene er fordelt på døgnet.

Tror ikke jeg klarer å bli mer spesifikk enn dette.

Jeg har laget kode med forskjellige distribusjoner, og klarer også å plotte frem grafer, men jeg klarer ikke
å manipulere dem nok til at dem viser disse 2 toppene.

Jeg har X som er antall timer (0 til 24), kanskje jeg skal endre på dette å fordele det på intervaller?
Så du har et bimodalt datasett som du forsøker å analysere med unimodale distribusjoner? Det enkleste er kanskje å dele det opp og se på det som to normalfordelinger?
Lag en normalfordeling sentrert rundt kl 9 med en fornuftig standard deviation, og en annen normalfordeling sentrert rundt kl 16. Summer funksjonene og gjør litt triksing for å få det slik du vil (pass f.eks. på at integralet fra 0 til 24 er enten 1.0 eller 272403).

X kan være heltall, eller du kan dele opp i bøtter på 1 min, 10 min, 15 min, 30 min.
Gjest
Trådstarter
Sitat av Ozma Vis innlegg
Lag en normalfordeling sentrert rundt kl 9 med en fornuftig standard deviation, og en annen normalfordeling sentrert rundt kl 16. Summer funksjonene og gjør litt triksing for å få det slik du vil (pass f.eks. på at integralet fra 0 til 24 er enten 1.0 eller 272403).

X kan være heltall, eller du kan dele opp i bøtter på 1 min, 10 min, 15 min, 30 min.
Vis hele sitatet...
Hvorfor 272403? takk for svar! Har vært innom tanken at det kanskje er lurt å dele det på 2 normalfordelinger.

Men er det mulig å få noe hjelp nå da? I form av logikk/kode iform av dette. De løsningene jeg har funnet til nå har vært youtube/google løsninger
Sist endret av random512377; 25. april 2018 kl. 12:12. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Sitat av giroud2 Vis innlegg
Hvorfor 272403?
Vis hele sitatet...
Fordi det er summen av alle biler som kjører til Trondheim iflg. din oppgavetekst. Men normalfordelingene kan f.eks ikke være like, ettersom antall biler inn til en by tidlig på dagen(derav kommentaren om integralet), neppe er det samme som skal inn til byen senere på dagen. Gitt at pendling ofte går inn til byene når folk skal på jobb, og et mindre tall av de som bor i en by pendler til småsteder rundt(Ozma tar hensyn til alt dette i hans kommentar om tweaking).

Sitat av giroud2 Vis innlegg
Har vært innom tanken at det kanskje er lurt å dele det på 2 normalfordelinger.
Vis hele sitatet...
God idé, har du en implementasjon å vise fram? Om den er plottet i matplotlib er det enda lettere for folk med kompetanse innen Python og/eller statistikk å sjekke dine antagelser. Gitt at du oppgir de.

Sitat av giroud2 Vis innlegg
Men er det mulig å få noe hjelp nå da? I form av logikk/kode iform av dette. De løsningene jeg har funnet til nå har vært youtube/google løsninger
Vis hele sitatet...
Her har du hele problemet ditt - når du googler og ser ting på youtube, er du avhengig av at du forstår hvilke premisser som ligger til grunn for hver løsning, og at disse faktisk hjelper deg, eller i det hele tatt er anvendelige i din situasjon. Igjen - det er veldig mye lettere å hjelpe deg om du viser kode, datagrunnlag og dine antagelser, enn at du fortsetter å mate kompetente folk med tullete eksempler i håp om å få en "one solution for every problem". Det får du ikke, spesi-fuckings-elt innen statistikk.
Gjest
Trådstarter
Her har jeg laget en enkel Normal fordeling basert på biler som kommer inn fra vest:

Kode:

Kode

import numpy as np
import scipy as sp


mu, sigma = 60, 29 # mean og sigma..

s = np.random.normal(mu, sigma, 1000)


import matplotlib.pyplot as plt

count, bins, ignored = plt.hist(s, 30, normed=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
         np.exp( - (bins - mu)**2 / (2 * sigma **2) ),
    linewidth=2, color='r')
plt.show()
Resultat:


https://ibb.co/ecfq1x


Spørsmål 1: Hvordan kan jeg endre tallene under slik at den viser fra 0500 til 1200

Spørsmål 2: Hva er tallene på venstre siden med 0.014 øverst til venstre?

Spørsmål 3: Er dette en bra kode/fordeling/graf etc.
Forslag/tips til endringer?
Sist endret av random512377; 26. april 2018 kl. 15:02.
Sitat av giroud2 Vis innlegg
Spørsmål 1: Hvordan kan jeg endre tallene under slik at den viser fra 0500 til 1200
Vis hele sitatet...
https://matplotlib.org/api/_as_gen/m...plot.xlim.html
https://matplotlib.org/api/_as_gen/m...plot.ylim.html
Trigonoceps occipita
vidarlo's Avatar
Donor
Det slår meg at du ikkje heilt har forstått problemet du forsøker å løyse. Kor tar du snitt og sigma frå? Og har du tenkt over korleis du trur fordelinga av trafikk ser ut? Den vil t.d. aldri falle mot null, og trafikken klokka tolv er større enn trafikken klokka seks, sjølv om dei er like langt ifrå toppen klokka 9. Det seier noko om forma kurva bør ha.

Å forsøke å løyse eit problem du ikkje forstår er vanskeleg. Stortsett er det svært gunstig å forstå problemet godt, før du prøver å bruke kode til å mekanisere det. DumDiDum sitt svar er rimeleg godt i så måte.
Gjest
Trådstarter
Sitat av vidarlo Vis innlegg
. Kor tar du snitt og sigma frå?
Vis hele sitatet...
Dette har jeg fra en annen python fil hvor jeg generer tilfeldige tall som også regner ut sigma og snitt automatisk for deretter og lagre i en excel fil.

Sitat av vidarlo Vis innlegg
Og har du tenkt over korleis du trur fordelinga av trafikk ser ut?
Vis hele sitatet...
Hvordan fordelingen av trafikk er, er slik jeg har forklart i innledningen, hvor det mest tenkelig er 2 topper, en på morgenen mellom 0800-0900, og en rundt klokken 15-16. Derfor tror jeg Poisson fordeling er det beste alternativet i denne sammenheng.
Sist endret av random512377; 26. april 2018 kl. 20:46.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av giroud2 Vis innlegg
Dette har jeg fra en annen python fil hvor jeg generer tilfeldige tall som også regner ut sigma og snitt automatisk for deretter og lagre i en excel fil.
Vis hele sitatet...
Så basert på tilfeldige tall regner du ut tilfeldige tall? Det er knapt nok svar på spørsmålet, men ok.
Sitat av giroud2 Vis innlegg
Hvordan fordelingen av trafikk er, er slik jeg har forklart i innledningen, hvor det mest tenkelig er 2 topper, en på morgenen mellom 0800-0900, og en rundt klokken 15-16. Derfor tror jeg Poisson fordeling er det beste alternativet i denne sammenheng.
Vis hele sitatet...
Eg ga deg eit par stikkord. Figuren du har vist i tråden er fullstendig symmetrisk. Det er neppe tilfellet. Kort sagt ligg dei fleste fortsatt i senga klokka 05:00, og trafikken er nær null. Klokka eitt er derimot trafikken ikkje null. 05:00 og 13:00 er like langt unna topp-punktet 09:00. Det er med andre ord ikkje snakk om symmetrisk fordeling.

Men igjen; eg trur ikkje problemet ditt her er python. Eg trur det er statistikk.
▼ ... noen uker senere ... ▼
Hupp, tok litt tid før jeg svarte på denne igjen. Poisson er ikke fleksibel nok til å kunne modellere den skarpe økningen biler man ser om morgenen, og normalfordeling er symmetrisk som bare blir teit. Beta er et godt valg.

Her ligger et live R-eksempel på hvordan finne fram til en dobbel beta-distribusjon som modellerer biltrafikk med to topper på en ålreit måte:

http://rextester.com/AJSC19981
Sist endret av DumDiDum; 23. mai 2018 kl. 18:38. Grunn: Bedre kommentarer på kode
Gjest
Trådstarter
Sitat av DumDiDum Vis innlegg
Hupp, tok litt tid før jeg svarte på denne igjen. Poisson er ikke fleksibel nok til å kunne modellere den skarpe økningen biler man ser om morgenen, og normalfordeling er symmetrisk som bare blir teit. Beta er et godt valg.

Her ligger et live R-eksempel på hvordan finne fram til en dobbel beta-distribusjon som modellerer biltrafikk med to topper på en ålreit måte:

http://rextester.com/AJSC19981
Vis hele sitatet...
Takker kompis