Over the last years, Support Vector Machines (SVMs) have become a successful approach in classification problems. However, the performance of SVMs is affected harshly by skewed data sets. An SVM learns a biased model that affects the performance of the classifier. Furthermore, SVMs are typically unsuccessful on data sets where the imbalanced ratio is very large. Lately, several techniques have been used to tackle this disadvantage by generating artificial instances. Artificial data instances attempt to add information to the minority class. However, the new instances could introduce noise and decrease the performance of the classifier. In this research, an alternative procedure is suggested, the algorithm finds systematically new instances, improving the performance of SVMs on skewed data sets. The proposed method starts obtaining the support vectors (SVs) from the skewed data set. These initial SVs are used to generate new instances and the PSO algorithm is used to evolve the artificial instances, eliminating noise instances. This research combines the best of optimization and classification techniques. To show the ability of the proposed method to improve the performance of SVMs on skewed data sets, we compare the performance of our method against some classical methods and show that our algorithm outperforms all of them on several data sets.