This research introduces a novel, data-driven optimization methodology for determining insurance premiums and illustrates it using an Iranian health insurance company as a case study. Using the optimal classification machine learning model, the insureds are divided into groups based on their potential to cause disruptions. Next, the indemnity of each group is estimated. Then a linear programming model is used to determine the premium for each group based on their estimated indemnification. Multi-criteria decision-making is utilized to identify the best machine learning algorithm after evaluating the performance of many algorithms using five metrics: accuracy, precision, recall, F1 score, and Matthews correlation coefficient. This study addresses the two common and significant disruptions in the insurance sector: errors in predicting possible losses and a decrease in the insurer's market share. The methodology discussed in this work can be applied to other insurance domains, expanding its practical applications.