狠狠撸

狠狠撸Share a Scribd company logo
MIT data science
5. Random Walks
6. ????? ?????
Sunggon Song
5. Random Walks
? ??? ??(Random Walks)
? ?? ??(Sanity Check)
??? ??(Random Walks)
? ?? ???? ??
? ?? ???? ??? ???? ????? ?? ?? ??
? ??? ?? ????? ??? ??? ?? ??
? ??? ???? ?? ?? ??? ??, ? ??? ??? ??
? ?? ??? ??? ???? ??
?????? ??? ????? ?? ??
??? ??
? ??? ?? : ? ?? ??? ??? ????
?? ? ?? ??? ?? ??? ??
????? ??
??? ???
??? ? ??
100,000?? ? ?? ???
????? ??
? ?? ?? ? ??? ?????
? ? ??? ? ?????
? ????? ??? ?? ??
?? ? ?? ??? ???
? Location — ??
? Field — Location ???? Drunk ????
??
? Drunk — ?? ??? ??? ??? ? ??
Location Class
? __init__ ?? x, y ??
? move ??? ?? ??
? getX, getY : ?? ?? x, y ??
? distFrom : other Location?? ?? ??
? __str__ : ?? x, y ??? ???? ??
Immutable ?
Drunk Class
? __init__ : ?? ??
? __str__ : ?? ??
???? ?? base class
Drunk? ?? ??? 2??
? ???? ??? ???? ????
? ?????? ??? ???? ???? ?
Drunk? ?? ??? 2??
? class UsualDrunk(Drunk):
def takeStep(self):
stepChoices = [(0,1), (0,-1), (1, 0), (-1, 0)]
return random.choice(stepChoices)
? class MasochistUsualDrunk(Drunk):
def takeStep(self):
stepChoices = [(0.0,1.1), (0.0,-0.9), (1.0, 0.0), (-1.0, 0.0)]
return random.choice(stepChoices)
Immutable ?
Field ???
? __init__ : drunks ? ??? (drunk? key??, ??
Location)
? addDrunk: drunks ?? drunk? ??? ???? ??,
??? ?? ??
? getLoc: drunk? ?? ??? ???? ???? ?? ??,
??? ?? ??
? moveDrunk: drunk? ?? ??? ???? ???? ??
??, ??? drunk? takeStep ???? ?? ?? drunk?
move? ???? ??? ??? drunks ?? ??
Immutable ?
? ?? ?????
? def walk(f, d, numSteps):
?? ?? ?????
? def simWalks(numSteps, numTrials, dClass):
?? ???
? def drunkTest(walkLengths, numTrials, dClass):
??????
? drunkTest((10, 100, 1000, 10000), 100,
UsualDrunk)
???????
?? ??(Sanity Check)
? ?????? ??? ? ?? ??? ??
? ?????? ??? ?? ??? ???? ??
? ??? ??? ?
? ??? ??? ?? ? ??!
? ??? ?? ??? ?? ??? ??? ??
? ??? ? ?? ?????
? Numpy
? SciPy
? Matplotlib
? PyLab
?? ??(Sanity Check)
? ??? ?? ?? ??? ???? ??? ??????
? drunkTest((0, 1, 2) 100, UsualDrunk)
??????
? drunkTest((10, 100, 1000, 10000), 100, UsualDrunk)
?????? ? ?? ???
? random.seed(0)
? simAll((UsualDrunk, MasochistDrunk), (1000,10000), 100)
??? ???
? ? ? ?? ??? ??? ?? ?? ??? ??? ?????
? ? ? ?? ??? ??? ?? ? ??? ??? ??? ??? ???? ???
Pylab
? NumPy ? ?? ?? ??? ?? ???? ???? ??? ??
? SciPy ? ?????? ??? ??? ???? ???? ??
? Matploblib ? ??? ??? ?? ?? ?? ?? API? ??
? PyLab ? MATLAB? ??? ?????? ???? ?? ?????? ??
???
? pylab.plot ? ?? ? ??? ?? ??? ????? ?
? ? ?? ??? x?? ??
? ? ?? ??? y?? ??
? ???? ??? ??
? ??? ???? ???. ? ?? ???? ??? ???? ??? ?? ??
???
??
?
?? ???
?
?? ??
?
Wormholes? ?? Field
?
Field? ?? ???
(OddField)
? __init__ : ???? Hole???? womholes?? ??? (x, y)? ???? ???
??? ??? ??
? moveDrunk : Field? moveDrunk? ???? drunks?? ?? x,y??? ??
(x,y)? wormhomes? ??? drunks? ??? wormhomes? ??? ??
? ?? ?? ?? ??
??
? ?? ??? ?? ??? ????? ??? ?? ??? ????? ?? ?
? ???? ???? ??? ??? ??? ?? ?? ??? ???? ???
??? ??? ?? ??
? ?????? ??? ??? ?? ?? ??? ??? ? ??
? ??? ??? ??????? ??? ? ?? ?? ??? ??, Sanity
check? ??? ?? ??
? ???? ?? ??? plot ???? ???? ??
6. ????? simulation
? ?? ??? ?????(Monte
Carlo Simulation)
? ? ?? ?? ?? ????? ??
? ???? ??
? ????? ??
? ??? ????
? ?? ??
?? ??? ?????
(Monte Carlo Simulation)
?? ??? ?????
(Monte Carlo Simulation)
? ?????? ??? ? ? ?? ?? ????
??
? ?? ??? ???
? ??? : ??? ???? ?? ??
? ????? ??? ?? ??? ??
? ??? ??? ?? ???? ??
? ????? ???? ?? ? ???? ??? ????
?? ??
? ???? ??? ???? ? ??? ???? ???
??? ?? ??? ??
? ??? ?? ? ?? ??? ?? ??, ??? ?? ??
100? ???? ?? ??? ? ??? ??
? ?? ??? ????? ?! ???? ?? ??? ???
???? ?? ??? ?? ???? ??? ? ??? ??
??
? ?? ? ?? ?? ? ??? ?, ??? ???
??? ????
? ? ? ???, ?? ? ? ???, ?? 100?
???
???? ??? ?? ??
? ??? ???? ? ??? ??
? ??? ?? (e.g., 100 vs. 2)
? ??? ?? (e.g., ?? ?? vs. 52? ??)
? ??? ????, ?? ??? ???? ??
???? ? ? ??? ??
??
??? ??(FairRoulette)
? __init__ : pockets??? 1??37?? ??? ????.
? spin : pockets???? ???? ??? ??? ball?
????.
? betPocket: ??? pocket? spin?? ??? ball?
???? amt * pocketOdds?? ????. ???
??? -amt? ????.
? __str__ : 'Fair Roulette' ??? ??
?? ??? ?????
? def playRoulette
100?? 1M?? ? ??
????? ?? - ? ??
??
? ?? ??? ??? ?? ??? ???? ??
??? ???? ??? p? ?? ???
??? ??? ??? 0?? ??
? ??? ?? ?? ??? ??? ???? 0?
?
???? ??
? ???? ??? ??? ???? ??? ?? ???
???? ??? ?? ???? ??? ???? ??
? ?? ??? ??? ?? ??? ??? ????? ??
??? ?? ??? ??
? “1913? 8? 18?, ?? ???? ????????? 26? ???? ???
[????]. ...???? ????? 15? ?? ????,???? ????
??? ???? ????.”
? 26? ???? ???? ?? ?? : 1/67,108,865
? ?? 25?? ?? ?????? ?, 26? ???? ???? ?? ?? : 1/2
????? ??
? ??? ? ? ???? ??? ??? ???? ?? ????
??
? ??? ??? ???? ??? ??? ???? ? ????
??
? ???? ??? ???? ??
? ???? ?? ??? ?? ??? ? ???? ??? ??
? ?? ?? ?? 10? ?? ???? ????(??? ??) 10????
???? 10?? ?? ???? ??. ? ???? ????
? ???? ????? 20? ?? ?? ?? ??? 50%
?????? ???? ? ??? ?
? ? ?? ??? ???? ??? ? ????
???? ?? ???
??? ?? ??? 2?
? class EuRoulette(FairRoulette):
? class AmRoulette(EuRoulette):
?? ?? ??
??? ???? ?? ??
? ?? ??? ???? ??? ??? ?? ??
? ???? ??? ???? ? ??
? ??? ??:
? ??? ??? ??? ??? ?? ???? ??? ??
??? ?????
? ?? ??? ???? ??
??? ????
? ??
? ????
? ?? ??
? ???? ??? ???? ?? ??
? ?? ??? ???? ?? ??? ??? ?? ???
? ???? ???? ?? ?? ??? ?? ?? : ??
? ?? ??? ??? ??? ??? ??? ???? ??
?? ???, ??? ??? ????
? ??? ?? ?? :
? ??? ??? ??? ??? ??? ?, ??????
?? ?? ????? ??? ?? ??? ?? ???
? ??? ???? ???? ??? ??? (????
??)
? ????
? ??? ???
? ???? ? ???? ????,
?? ??? ??? ???? ?
??? ???? ????
??
? def getMeanAndStd(X):
mean = sum(X)/float(len(X))
tot = 0.0
for x in X:
tot += (x - mean)**2
std = (tot/len(X))**0.5
return mean, std
?? ??
? ??? ?? ??? ??? ????? ?
? ?? ??? ????? ??? ? ???? ?? ?? ??
?? ??? ?? ???? ???? ?? ??
? ????? ??? ?? ??? ???? ?? ??? ? ???
??? ??? ???
“ ?? ??? 10k? ?? ??? -3.3%??. ??
??? +/-3.5%?? ???? 95%??. ”
?? ?? ?????
10k?? ??? ?? ? ????,
??? ???? -3.3%
?? ?? ? 95%? 6.8%? 0.2% ??? ??
?? ??? ??? ?????
? ???? ??? ??
? ???? ?? ??? ?? ????? ???? ????
68%? ??? ??? 1 ?? ?? ?? ??? ??
? ???? ~95%? ?????? 1.96 ???? ??? ??
? ???? ~99.7%? ?????? 3 ???? ??? ??
???? ??? ????
?? ??
? ?? ?? ??? 0
? ?? ??? ???? ?? ??? ???? ??? ?
? ??? ??? ??? ??
? ??? ??? ????
? ??? ??, ????
? ? ? ???? ??? ??? ?? ??
?? ??
? ?? ?? : ?? ??? ?? ?? ?? ??? ??? ???
???? ??
? ?? ??
? ?? ?? ??
? ?? ??? ??? ??
? ??? ??? ??? ???? 2?? ?? ??
? ?? ?? ??
? ??????(PDF)? ??
? ? ? ?? ???? ??? ??? ???
PDF’s
? ??????(PDFs)? ???? ??
? ????? ? ? ??? ??? ?? ??? ?? ? ??
? ??? ???? ??? ??? ?? x??? ?? ?? ??
? ? ? ??? ??? ??? ?? ??? ??? ??? ??
Reference
MIT data science
https://www.edwith.org/datascience/lecture
/33892/

More Related Content

??Walks, ????? ?????

  • 1. MIT data science 5. Random Walks 6. ????? ????? Sunggon Song
  • 2. 5. Random Walks ? ??? ??(Random Walks) ? ?? ??(Sanity Check)
  • 4. ? ?? ???? ?? ? ?? ???? ??? ???? ????? ?? ?? ?? ? ??? ?? ????? ??? ??? ?? ?? ? ??? ???? ?? ?? ??? ??, ? ??? ??? ?? ? ?? ??? ??? ???? ?? ?????? ??? ????? ?? ?? ??? ?? ? ??? ?? : ? ?? ??? ??? ???? ?? ? ?? ??? ?? ??? ??
  • 9. ????? ?? ? ?? ?? ? ??? ????? ? ? ??? ? ????? ? ????? ??? ?? ??
  • 10. ?? ? ?? ??? ??? ? Location — ?? ? Field — Location ???? Drunk ???? ?? ? Drunk — ?? ??? ??? ??? ? ??
  • 11. Location Class ? __init__ ?? x, y ?? ? move ??? ?? ?? ? getX, getY : ?? ?? x, y ?? ? distFrom : other Location?? ?? ?? ? __str__ : ?? x, y ??? ???? ?? Immutable ?
  • 12. Drunk Class ? __init__ : ?? ?? ? __str__ : ?? ?? ???? ?? base class
  • 13. Drunk? ?? ??? 2?? ? ???? ??? ???? ???? ? ?????? ??? ???? ???? ?
  • 14. Drunk? ?? ??? 2?? ? class UsualDrunk(Drunk): def takeStep(self): stepChoices = [(0,1), (0,-1), (1, 0), (-1, 0)] return random.choice(stepChoices) ? class MasochistUsualDrunk(Drunk): def takeStep(self): stepChoices = [(0.0,1.1), (0.0,-0.9), (1.0, 0.0), (-1.0, 0.0)] return random.choice(stepChoices) Immutable ?
  • 15. Field ??? ? __init__ : drunks ? ??? (drunk? key??, ?? Location) ? addDrunk: drunks ?? drunk? ??? ???? ??, ??? ?? ?? ? getLoc: drunk? ?? ??? ???? ???? ?? ??, ??? ?? ?? ? moveDrunk: drunk? ?? ??? ???? ???? ?? ??, ??? drunk? takeStep ???? ?? ?? drunk? move? ???? ??? ??? drunks ?? ?? Immutable ?
  • 16. ? ?? ????? ? def walk(f, d, numSteps):
  • 17. ?? ?? ????? ? def simWalks(numSteps, numTrials, dClass):
  • 18. ?? ??? ? def drunkTest(walkLengths, numTrials, dClass):
  • 19. ?????? ? drunkTest((10, 100, 1000, 10000), 100, UsualDrunk) ???????
  • 20. ?? ??(Sanity Check) ? ?????? ??? ? ?? ??? ?? ? ?????? ??? ?? ??? ???? ?? ? ??? ??? ? ? ??? ??? ?? ? ??! ? ??? ?? ??? ?? ??? ??? ?? ? ??? ? ?? ????? ? Numpy ? SciPy ? Matplotlib ? PyLab
  • 21. ?? ??(Sanity Check) ? ??? ?? ?? ??? ???? ??? ?????? ? drunkTest((0, 1, 2) 100, UsualDrunk)
  • 22. ?????? ? drunkTest((10, 100, 1000, 10000), 100, UsualDrunk)
  • 23. ?????? ? ?? ??? ? random.seed(0) ? simAll((UsualDrunk, MasochistDrunk), (1000,10000), 100)
  • 24. ??? ??? ? ? ? ?? ??? ??? ?? ?? ??? ??? ????? ? ? ? ?? ??? ??? ?? ? ??? ??? ??? ??? ???? ???
  • 25. Pylab ? NumPy ? ?? ?? ??? ?? ???? ???? ??? ?? ? SciPy ? ?????? ??? ??? ???? ???? ?? ? Matploblib ? ??? ??? ?? ?? ?? ?? API? ?? ? PyLab ? MATLAB? ??? ?????? ???? ?? ?????? ??
  • 26. ??? ? pylab.plot ? ?? ? ??? ?? ??? ????? ? ? ? ?? ??? x?? ?? ? ? ?? ??? y?? ?? ? ???? ??? ?? ? ??? ???? ???. ? ?? ???? ??? ???? ??? ?? ?? ???
  • 27. ?? ?
  • 31. Field? ?? ??? (OddField) ? __init__ : ???? Hole???? womholes?? ??? (x, y)? ???? ??? ??? ??? ?? ? moveDrunk : Field? moveDrunk? ???? drunks?? ?? x,y??? ?? (x,y)? wormhomes? ??? drunks? ??? wormhomes? ??? ??
  • 32. ? ?? ?? ?? ??
  • 33. ?? ? ?? ??? ?? ??? ????? ??? ?? ??? ????? ?? ? ? ???? ???? ??? ??? ??? ?? ?? ??? ???? ??? ??? ??? ?? ?? ? ?????? ??? ??? ?? ?? ??? ??? ? ?? ? ??? ??? ??????? ??? ? ?? ?? ??? ??, Sanity check? ??? ?? ?? ? ???? ?? ??? plot ???? ???? ??
  • 34. 6. ????? simulation ? ?? ??? ?????(Monte Carlo Simulation) ? ? ?? ?? ?? ????? ?? ? ???? ?? ? ????? ?? ? ??? ???? ? ?? ??
  • 35. ?? ??? ????? (Monte Carlo Simulation)
  • 36. ?? ??? ????? (Monte Carlo Simulation) ? ?????? ??? ? ? ?? ?? ???? ?? ? ?? ??? ???
  • 37. ? ??? : ??? ???? ?? ?? ? ????? ??? ?? ??? ?? ? ??? ??? ?? ???? ?? ? ????? ???? ?? ? ???? ??? ???? ?? ?? ? ???? ??? ???? ? ??? ???? ??? ??? ?? ??? ?? ? ??? ?? ? ?? ??? ?? ??, ??? ?? ?? 100? ???? ?? ??? ? ??? ?? ? ?? ??? ????? ?! ???? ?? ??? ??? ???? ?? ??? ?? ???? ??? ? ??? ??
  • 38. ?? ? ?? ? ?? ?? ? ??? ?, ??? ??? ??? ???? ? ? ? ???, ?? ? ? ???, ?? 100? ???
  • 39. ???? ??? ?? ?? ? ??? ???? ? ??? ?? ? ??? ?? (e.g., 100 vs. 2) ? ??? ?? (e.g., ?? ?? vs. 52? ??) ? ??? ????, ?? ??? ???? ?? ???? ? ? ??? ??
  • 40. ??
  • 41. ??? ??(FairRoulette) ? __init__ : pockets??? 1??37?? ??? ????. ? spin : pockets???? ???? ??? ??? ball? ????. ? betPocket: ??? pocket? spin?? ??? ball? ???? amt * pocketOdds?? ????. ??? ??? -amt? ????. ? __str__ : 'Fair Roulette' ??? ??
  • 42. ?? ??? ????? ? def playRoulette
  • 44. ????? ?? - ? ?? ?? ? ?? ??? ??? ?? ??? ???? ?? ??? ???? ??? p? ?? ??? ??? ??? ??? 0?? ?? ? ??? ?? ?? ??? ??? ???? 0? ?
  • 45. ???? ?? ? ???? ??? ??? ???? ??? ?? ??? ???? ??? ?? ???? ??? ???? ?? ? ?? ??? ??? ?? ??? ??? ????? ?? ??? ?? ??? ?? ? “1913? 8? 18?, ?? ???? ????????? 26? ???? ??? [????]. ...???? ????? 15? ?? ????,???? ???? ??? ???? ????.” ? 26? ???? ???? ?? ?? : 1/67,108,865 ? ?? 25?? ?? ?????? ?, 26? ???? ???? ?? ?? : 1/2
  • 46. ????? ?? ? ??? ? ? ???? ??? ??? ???? ?? ???? ?? ? ??? ??? ???? ??? ??? ???? ? ???? ?? ? ???? ??? ???? ?? ? ???? ?? ??? ?? ??? ? ???? ??? ?? ? ?? ?? ?? 10? ?? ???? ????(??? ??) 10???? ???? 10?? ?? ???? ??. ? ???? ???? ? ???? ????? 20? ?? ?? ?? ??? 50% ?????? ???? ? ??? ? ? ? ?? ??? ???? ??? ? ????
  • 48. ??? ?? ??? 2? ? class EuRoulette(FairRoulette): ? class AmRoulette(EuRoulette):
  • 50. ??? ???? ?? ?? ? ?? ??? ???? ??? ??? ?? ?? ? ???? ??? ???? ? ?? ? ??? ??: ? ??? ??? ??? ??? ?? ???? ??? ?? ??? ????? ? ?? ??? ???? ??
  • 51. ??? ???? ? ?? ? ???? ? ?? ?? ? ???? ??? ???? ?? ??
  • 52. ? ?? ??? ???? ?? ??? ??? ?? ??? ? ???? ???? ?? ?? ??? ?? ?? : ?? ? ?? ??? ??? ??? ??? ??? ???? ?? ?? ???, ??? ??? ???? ? ??? ?? ?? : ? ??? ??? ??? ??? ??? ?, ?????? ?? ?? ????? ??? ?? ??? ?? ??? ? ??? ???? ???? ??? ??? (???? ??) ? ???? ? ??? ??? ? ???? ? ???? ????, ?? ??? ??? ???? ?
  • 53. ??? ???? ???? ?? ? def getMeanAndStd(X): mean = sum(X)/float(len(X)) tot = 0.0 for x in X: tot += (x - mean)**2 std = (tot/len(X))**0.5 return mean, std
  • 54. ?? ?? ? ??? ?? ??? ??? ????? ? ? ?? ??? ????? ??? ? ???? ?? ?? ?? ?? ??? ?? ???? ???? ?? ?? ? ????? ??? ?? ??? ???? ?? ??? ? ??? ??? ??? ???
  • 55. “ ?? ??? 10k? ?? ??? -3.3%??. ?? ??? +/-3.5%?? ???? 95%??. ” ?? ?? ?????
  • 56. 10k?? ??? ?? ? ????, ??? ???? -3.3% ?? ?? ? 95%? 6.8%? 0.2% ??? ??
  • 57. ?? ??? ??? ????? ? ???? ??? ?? ? ???? ?? ??? ?? ????? ???? ???? 68%? ??? ??? 1 ?? ?? ?? ??? ?? ? ???? ~95%? ?????? 1.96 ???? ??? ?? ? ???? ~99.7%? ?????? 3 ???? ??? ??
  • 58. ???? ??? ???? ?? ?? ? ?? ?? ??? 0 ? ?? ??? ???? ?? ??? ???? ??? ? ? ??? ??? ??? ?? ? ??? ??? ???? ? ??? ??, ???? ? ? ? ???? ??? ??? ?? ??
  • 59. ?? ?? ? ?? ?? : ?? ??? ?? ?? ?? ??? ??? ??? ???? ?? ? ?? ?? ? ?? ?? ?? ? ?? ??? ??? ?? ? ??? ??? ??? ???? 2?? ?? ?? ? ?? ?? ?? ? ??????(PDF)? ?? ? ? ? ?? ???? ??? ??? ???
  • 60. PDF’s ? ??????(PDFs)? ???? ?? ? ????? ? ? ??? ??? ?? ??? ?? ? ?? ? ??? ???? ??? ??? ?? x??? ?? ?? ?? ? ? ? ??? ??? ??? ?? ??? ??? ??? ??