예제 #1
0
#, ['Halcyondays' , 'Caldera Ginger Beer', 4.0]]
#testQueries = [['stcules', 'English Strong Ale',3.0]]

actualToPredictedRating = []

for query in testQueries :

	testCustomer = query[0]
	testProduct = query[1]
	actualRating = query[2]
	print "****************************************"
	print "Test Query ", query
	
	#Step 1 : Find Similar customers for this customer
	print "Finding similar customers for : ", testCustomer
	similarCustomers = knnc.findSimilarCustomers(testCustomer, availableCustomerRows, availableBeerColumns);
	
	#Step 2 : Fnd all the beers which are similar to this one.
	print "Finding similar beers for : ", testProduct
	#similarBeers = kv.findSimiarityInParallel(testProduct, availableBeerColumns, availableCustomerRows, FIELD_MAP)
	similarBeers = kv.findSimiarity(testProduct, availableBeerColumns, availableCustomerRows, FIELD_MAP)

	#Step 3 : Predict rating for this query
	filteredRating = 0
	overallRating = 0
	
	try :
	    #BeerName - 'Heavy Handed IPA'
	    model = PredictionModel(testCustomer, similarCustomers, similarBeers, availableBeerColumns, availableCustomerRows)
	
	    #Next for each of those products find the common reviewers.
예제 #2
0
#testQueries = [['stcules', 'English Strong Ale',3.0]]

actualToPredictedRating = []

for query in testQueries:

    testCustomer = query[0]
    testProduct = query[1]
    actualRating = query[2]
    print "****************************************"
    print "Test Query ", query

    #Step 1 : Find Similar customers for this customer
    print "Finding similar customers for : ", testCustomer
    similarCustomers = knnc.findSimilarCustomers(testCustomer,
                                                 availableCustomerRows,
                                                 availableBeerColumns)

    #Step 2 : Fnd all the beers which are similar to this one.
    print "Finding similar beers for : ", testProduct
    #similarBeers = kv.findSimiarityInParallel(testProduct, availableBeerColumns, availableCustomerRows, FIELD_MAP)
    similarBeers = kv.findSimiarity(testProduct, availableBeerColumns,
                                    availableCustomerRows, FIELD_MAP)

    #Step 3 : Predict rating for this query
    filteredRating = 0
    overallRating = 0

    try:
        #BeerName - 'Heavy Handed IPA'
        model = PredictionModel(testCustomer, similarCustomers, similarBeers,
예제 #3
0
def findSimilarCustomers(customerId) :
    return knnc.findSimilarCustomers(customerId, availableCustomerRows, availableBeerColumns);
예제 #4
0
def processData(count, availableBeerColumns, availableCustomerRows, sumOfBeerRatingsOverall):
    MEAN_PRODUCT_RATING=round((sumOfBeerRatingsOverall/count), 1)
    print ("Mean Beer rating for any beer : ", MEAN_PRODUCT_RATING)
    print ("# of beers = ", len(availableBeerColumns))
    print ("# of customers = ", len(availableCustomerRows))
    
        #availableBeerColumns = csvLoader.getAvailableBeerColumns()
        #availableCustomerRows = csvLoader.getAvailableCustomerRows() 

    #Demo - combined run
    #testQueries = [['rawthar' , 'Caldera Ginger Beer', 4.0], ['Halcyondays' , 'Caldera Ginger Beer', 4.0],['rawthar' , 'Heavy Handed IPA', 4.0] ]

    #Demo - quick run
    testQueries = [['hopdog' , 'Iron Hill Northern English Brown Ale', 3.0]]

    #Demo - large data

    #testQueries = [['rawthar' , 'Heavy Handed IPA', 4.0]]
    #, ['Halcyondays' , 'Caldera Ginger Beer', 4.0]]
    #testQueries = [['stcules', 'English Strong Ale',3.0]]

    actualToPredictedRating = []

    for query in testQueries :

        testCustomer = query[0]
        testProduct = query[1]
        actualRating = query[2]
        print ("****************************************")
        print ("Test Query ", query)
        
        #Step 1 : Find Similar customers for this customer
        print ("Finding similar customers for : ", testCustomer)
        similarCustomers = knnc.findSimilarCustomers(testCustomer, availableCustomerRows, availableBeerColumns);

        print ("SIMILAR Customers *****", len(similarCustomers))
        
        #Step 2 : Fnd all the beers which are similar to this one.
        print ("Finding similar beers for : ", testProduct)
        similarBeers = kv.findSimiarityInParallel(testProduct, availableBeerColumns, availableCustomerRows, FIELD_MAP)
        #similarBeers = kv.findSimiarity(testProduct, availableBeerColumns, availableCustomerRows, FIELD_MAP)

        #print ("SIMILAR ONES *****", similarBeers[0])

        #Step 3 : Predict rating for this query
        filteredRating = 0
        overallRating = 0
        
        try :
            #BeerName - 'Heavy Handed IPA'
            model = PredictionModel(testCustomer, similarCustomers, similarBeers, availableBeerColumns, availableCustomerRows)
        
            #Next for each of those products find the common reviewers.
            print ("Finding Global BaseLine rating...")
            baselineRating = model.computeGlobalBaseline(testProduct)
            print ("Global BaseLine rating : ", baselineRating)
        
            #Compute rating by Collaborative filtering.
            print ("Finding filtered rating...")
            filteredRating = model.computeFilteredRatingEstimate(testProduct)
            
            #Now get the average overall rating
            for k,v in filteredRating.items():
                #print "rating for : ", k,  " is " , v
                overallRating += v;
            if len(filteredRating) == 0 :
                print ("Cannot predict overall rating, as filtered rating is zero!");
                break
            overallRating = (overallRating / len(filteredRating))
            print ("Overall Rating : ",  overallRating)
            print ("****************************************")
            
            actualToPredictedRating.append([actualRating] + [overallRating])
        
        except Exception as e:
            print (e)
            pass
        
        return actualToPredictedRating
예제 #5
0
def processData(count, availableBeerColumns, availableCustomerRows,
                sumOfBeerRatingsOverall):
    MEAN_PRODUCT_RATING = round((sumOfBeerRatingsOverall / count), 1)
    print("Mean Beer rating for any beer : ", MEAN_PRODUCT_RATING)
    print("# of beers = ", len(availableBeerColumns))
    print("# of customers = ", len(availableCustomerRows))

    #availableBeerColumns = csvLoader.getAvailableBeerColumns()
    #availableCustomerRows = csvLoader.getAvailableCustomerRows()

    #Demo - combined run
    #testQueries = [['rawthar' , 'Caldera Ginger Beer', 4.0], ['Halcyondays' , 'Caldera Ginger Beer', 4.0],['rawthar' , 'Heavy Handed IPA', 4.0] ]

    #Demo - quick run
    testQueries = [['hopdog', 'Iron Hill Northern English Brown Ale', 3.0]]

    #Demo - large data

    #testQueries = [['rawthar' , 'Heavy Handed IPA', 4.0]]
    #, ['Halcyondays' , 'Caldera Ginger Beer', 4.0]]
    #testQueries = [['stcules', 'English Strong Ale',3.0]]

    actualToPredictedRating = []

    for query in testQueries:

        testCustomer = query[0]
        testProduct = query[1]
        actualRating = query[2]
        print("****************************************")
        print("Test Query ", query)

        #Step 1 : Find Similar customers for this customer
        print("Finding similar customers for : ", testCustomer)
        similarCustomers = knnc.findSimilarCustomers(testCustomer,
                                                     availableCustomerRows,
                                                     availableBeerColumns)

        print("SIMILAR Customers *****", len(similarCustomers))

        #Step 2 : Fnd all the beers which are similar to this one.
        print("Finding similar beers for : ", testProduct)
        similarBeers = kv.findSimiarityInParallel(testProduct,
                                                  availableBeerColumns,
                                                  availableCustomerRows,
                                                  FIELD_MAP)
        #similarBeers = kv.findSimiarity(testProduct, availableBeerColumns, availableCustomerRows, FIELD_MAP)

        #print ("SIMILAR ONES *****", similarBeers[0])

        #Step 3 : Predict rating for this query
        filteredRating = 0
        overallRating = 0

        try:
            #BeerName - 'Heavy Handed IPA'
            model = PredictionModel(testCustomer, similarCustomers,
                                    similarBeers, availableBeerColumns,
                                    availableCustomerRows)

            #Next for each of those products find the common reviewers.
            print("Finding Global BaseLine rating...")
            baselineRating = model.computeGlobalBaseline(testProduct)
            print("Global BaseLine rating : ", baselineRating)

            #Compute rating by Collaborative filtering.
            print("Finding filtered rating...")
            filteredRating = model.computeFilteredRatingEstimate(testProduct)

            #Now get the average overall rating
            for k, v in filteredRating.items():
                #print "rating for : ", k,  " is " , v
                overallRating += v
            if len(filteredRating) == 0:
                print(
                    "Cannot predict overall rating, as filtered rating is zero!"
                )
                break
            overallRating = (overallRating / len(filteredRating))
            print("Overall Rating : ", overallRating)
            print("****************************************")

            actualToPredictedRating.append([actualRating] + [overallRating])

        except Exception as e:
            print(e)
            pass

        return actualToPredictedRating