Optimal proportion between the amount of Class = 1 and the amount of Class = 0? I am quite new machine learning methods, so I may not write proper technical formulas.

My question is about the optimal proportion between sample size in Class = 1 and Class = 0 in a binary classification problem. (I might use different models, but I will start with decision tree).

I am trying to develop a risk model for a population of 300.000 by using some risk factors, and each risk factor has a risk-weight. So basically it is a accumulative model


  Risk_amount = Risk_factor_1 * weight_1 + Risk_factor_2 * weight_2 + Risk_factor_3 * weight_3 ... 


My big question is if a Risk_amount really belongs to  Class = 1 or not.

I want my ML-model to find the most optimal weights to those risk factors.

I already know that 1000 out of 300.000 are risky in real. So the amount of target data with Class = 1 is 1000.

So the total amount of target data with non-risky population Class = 0 is 299.000

The question is what is the optimal proportion between the amount of Class = 1 and the amount of Class = 0?

1000 Class = 1 vs. 1000 Class = 0

or

1000 Class = 1 vs. the whole Class = 0 as 299.000?
The balance between two classes in a classification is very important, as you do not want your model to overfit for a particular class.

This is where you use metrics apart from accuracy to really evaluate how good your model truly is. In case you are not able to balance the dataset, there are multiple ways to work with imbalanced data. They are as follows:


You could use certain techniques like SMOTE to generate more samples of the undersampled class
You must split your dataset in test and train with stratification so that you have a balance in your evaluation.
You can sub-sample the large class and balance the two classes, and this multiple times by taking random sub samples of the larger class. 


Thorough analysis of the result is very important to understand how to proceed towards the solution to the problem. Please look at f1 score, precision and recall apart from accuracy. Also read about micro/macro averaging of these metrics. 

There are a lot of conversations on datascience stackexchange and stackoverflow on how to work with imbalanced data for classification. Here is a link : https://stackoverflow.com/questions/40568254/machine-learning-classification-on-imbalanced-data

Have fun with machine learning :)