Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #generic_chi_j.py
- #chi-s = (o-e)^2/e
- import random
- def chisquare(
- pListOfActualObservedValues:list,
- pListOfExpectedValues:list
- )->float or bool:
- bCaution = len(pListOfActualObservedValues) \
- == len(pListOfExpectedValues)
- if (bCaution):
- fDistance=0
- iHowManySamples:int = len(pListOfActualObservedValues)
- listValidAddresses:list = \
- range(iHowManySamples) #0..iHowManySamples-1
- for iAddress in listValidAddresses:
- #compute
- observedValue = \
- pListOfActualObservedValues[iAddress]
- expectedValue = \
- pListOfExpectedValues[iAddress]
- fDiff = observedValue - expectedValue
- fParcelDist = fDiff**2
- fParcelChi = fParcelDist/expectedValue
- fDistance+=fParcelChi
- #for
- return fDistance
- else:
- return False
- #def chisquare
- #J(A,B) = |A∩B| / |A∪B|
- #J(A,B) = card(intersect(A,B)) / card(union(A, B))
- def jaccardProximity(
- pListOfActualObservedValues:list,
- pListOfExpectedValues:list
- ):
- #no repetitions
- setObserved = set(pListOfActualObservedValues)
- #type(setObserved) #set
- #no repetitions
- setExpected = set(pListOfExpectedValues)
- #type(setExpected) #set
- setIntersection = setObserved.intersection(setExpected)
- setUnion = setObserved.union(setExpected)
- cardinalityIntersect = len(setIntersection)
- cardinalityUnion = len(setUnion)
- fJProx = cardinalityIntersect / cardinalityUnion
- return fJProx
- #def jaccardProximity
- def randomListFloats(pLen:int):
- listRet = []
- for idx in range(pLen):
- f = random.Random()
- listRet.append(f)
- #for
- #[0.1 , 0.2323, ....] * 100 => [10.0, 23.23, ...[
- #broadcasting
- listRet*=100
- #listRet*=random.randint(10, 1000)
- #listRet = listRet*random.randint(10, 1000)
- return listRet
- #def randomListFloats
- col1 = randomListFloats(100)
- print (col1)
- col2 = randomListFloats(100)
- print (col2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement