Machine learning problem with only original data without test and validation data I am new to machine learning and I am trying to solve a problem where I have to predict if a customer will buy a home insurance product or not.

I have got a dataset which tells me that which of the bank's customer bought a mortgage from the bank.
I have got another data of the customers who bought the mortgage first, then the bank ran a campaign to provide them with home insurance randomly and this dataset tells me that which of the mortgage customers actually bought home insurance from the bank.

Now my job is to predict which customers should I pick for the bank that will have the highest possibility to subscribe to the home insurance product.
I do not have a separate train/test/validation dataset, but just one dataset. How do I  approach this problem? Should I create the validation and test data from my original dataset that I have been given? how should I approach this problem to predict correctly?
Usually, with a predictive model, you generate a train and test sample from the original dataset, e.g. by using sklearn.
import numpy as np
from sklearn.model_selection import train_test_split
X, y = np.arange(10).reshape((5, 2)), range(5)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
Train some model on one set and test on the other by comparing predictions to actual (true) outcomes.
You could also use cross validation, in which case a model is trained on one part of the data (e.g. 4/5 of the data with 5-fold cv) and tested on the remaining 1/5 of the data. This is done for all of the „folds“. See Ch. 5.1. of „Introduction to Statistical Learning“ for more details on that. https://www.statlearning.com/
Simply make sure you obtain a test score based on data not used for training.