Beispiel #1
0
def Centroid(X_train, Y_train, X_test, Y_test):
	# Parameter 'shrinkage' is tuned 
	#Cross validation
	shrinkages = np.linspace(0, 10, 100)
	tuned_parameters = [{'shrink_threshold': shrinkages}]
	cv = GridSearchCV(NearestCentroid(), tuned_parameters)
	cv.fit(X_train, Y_train)
	
	#Optimal parameters
	print('Best Params: ')
	print(cv.best_params_)

	#Optimal Model
	clf = NearestCentroid()
	clf.set_params(shrink_threshold=cv.best_params_['shrink_threshold'])
	clf.fit(X_train, Y_train)
	pred = clf.predict(X_test)
	test_error = mean_squared_error(Y_test, pred)
	acc_score = accuracy_score(Y_test, pred)
	print('Nearest Centroid Test Error: ' + str(test_error))
	print('Nearest Centroid Accuracy Score: ' + str(acc_score))
	print('First 10 predictions: ')
	print(pred[:10])
	print('First 10 actual: ')
	print(Y_test[:10])
	print('Centroid of each class: ')
	print(clf.centroids_[0])
	print('Class labels known to the classifier: ')
	print(clf.classes_)
	return clf, test_error, acc_score