Training classifiers can be seen as an optimization problem. With this view, we have developed a method to train a type of nearest centroid classifier with PSO. Results showed an improvement on most of the datasets tested. Additionally, we have developed a method to utilize the developed classifier with datasets containing both numeric and categorical data by integrating the centroid algorithm with a decision tree. However, experiments found no significant improvement over the original decision tree method. Both the developed PSO centroid algorithm, and the previous PSO centroid algorithm are implemented on the GPU, with results showing at least one order of magnitude difference between speeds of the GPU and a "typical" sequential CPU implementation.