def myclassify_oneclass(numfiers,xtrain,xtest,xtrunc,nuparam=.5): # remove NaN, Inf, and -Inf values from the xtest feature matrix xtest = xtest[~np.isnan(xtest).any(axis=1),:] xtest = xtest[~np.isinf(xtest).any(axis=1),:] xtrunc = xtrunc[0] # this is because the xtrunc is a list and we want only the first index, which is our array #if xtest is NxM matrix, returns Nxnumifiers matrix where each column corresponds to a classifiers prediction vector count = 0 # print numfiers predictionMat = np.empty((xtest.shape[0],numfiers)) predictionStringMat = [] finalPredMat = [] oneclassifier = oneclass(nu = nuparam) # print 'created classifier' oneclassifier = oneclassifier.fit(xtrain) # print 'trained classifier' ytest = oneclassifier.predict(xtest) # print 'predicted classifier results' predictionMat[:,count] = ytest count += 1 for colCount in range(predictionMat.shape[1]): tempCol = predictionMat[:,colCount] modeCol = predWindowVecModeFinder(tempCol,xtrunc) finalPredMat += map(int,modeCol) modeStr = predVec2Str(modeCol) predictionStringMat.append(modeStr) return predictionStringMat,finalPredMat
xtrain_pow_shortened = xtrain_pow[:,0:6] tuned_params = [{'kernel': ['rbf'],'tol' : [.9,1]}] #,{'kernel': ['linear']},{'kernel': ['poly'], 'degree': [2,6],'gamma':[.1,.0001],'coef0': [0.0,1.0]}] #indep_grid ={'iid': [True,False]} then use ParameterGrid? oc = oneclass() oc.fit(xtrain_aud_shortened) predVec = oc.predict(xtrain_aud_shortened) predVec = (predVec+1)/2 for i in range(len(predVec)): predVec[i] = int(predVec[i]) score = recsco(np.ones(xtrain_aud_shortened.shape),predVec) print "Score %s" % score #gridSearch = GridSearchCV(estimator = oneclass(),param_grid = tuned_params,iid=True,scoring=recsco) print "starting grid search" #gridSearch.fit(xtrain_aud) print("Best params found") # print()
def myclassify_NA(numfiers,xtrain,xtest,xtrunc,xtest2,xtrunc2,nuparam): # remove NaN, Inf, and -Inf values from the xtest feature matrix xtest = xtest[~np.isnan(xtest).any(axis=1),:] xtest = xtest[~np.isinf(xtest).any(axis=1),:] xtrunclength = sio.loadmat('Files/xtrunclength.mat') xtrunclength = xtrunclength['xtrunclength'][0] xtrunc = xtrunc[0] xtrunc2 = xtrunc2[0] #if xtest is NxM matrix, returns Nxnumifiers matrix where each column corresponds to a classifiers prediction vector count = 0 print numfiers predictionMat = np.empty((xtest.shape[0],numfiers)) predictionStringMat = [] predictionMat2 = np.empty((xtest2.shape[0],numfiers)) predictionStringMat2 = [] print 'part 1' oneclassclass = oneclass(nu = nuparam) print 'part 2' oneclassclass.fit(xtrain) print 'part 3' ytest = oneclassclass.predict(xtest) ytest2 = oneclassclass.predict(xtest2) print 'part 4' predictionMat[:,count] = ytest predictionMat2[:,count] = ytest2 count += 1 #print oneclassclass.get_params() # print 'finished one' # if count < numfiers: # oc2 = oneclass(nu = .05) # oc2.fit(xtrain) # ytest = oc2.predict(xtest) # predictionMat[:,count] = ytest # count +=1 # # # if count < numfiers: # oc3 = oneclass(kernel='linear', degree = 4) # oc3.fit(xtrain) # ytest = oc3.predict(xtest) # predictionMat[:,count] = ytest # count+=1 # # if count < numfiers: # oneclass2 = oneclass(kernel = 'poly', degree = 4) # print 'part 5' # oneclass2.fit(xtrain) # print 'part 6' # ytest = oneclass2.predict(xtest) # print 'part 7' # predictionMat[:,count] = ytest # count+=1 if count < numfiers: oneclass2 = oneclass(kernel = 'poly', nu = nuparam) print 'part 5' oneclass2.fit(xtrain) print 'part 6' ytest = oneclass2.predict(xtest) ytest2 = oneclass2.predict(xtest2) print 'part 7' predictionMat[:,count] = ytest predictionMat2[:,count] = ytest2 count+=1 for colCount in range(predictionMat.shape[1]): tempCol = predictionMat[:,colCount] modeCol = predWindowVecModeFinder(tempCol,xtrunc) modeStr = predVec2Str(modeCol) predictionStringMat.append(modeStr) for colCount2 in range(predictionMat2.shape[1]): tempCol2 = predictionMat2[:,colCount2] modeCol2 = predWindowVecModeFinder(tempCol2,xtrunc2) modeStr2 = predVec2Str(modeCol2) predictionStringMat2.append(modeStr2) return predictionStringMat,predictionStringMat2