Üblicherweise liest man alle Daten die man hat ein, z.B. mit Numpy oder Pandas.
Dann unterteilt man die Daten zuerst in einen "Trainings"- und einen Testdatensatz, so 80% / 20% oder 90% / 10%.
Danach unterteilt man den "Trainings"-Datensatz nochmals in einen echten Trainingsdatenteil und einen Validierungsdatensatz, Prozente wieder wie oben.
Mit dem Trainingsdatenteil wird dann trainiert und das Training mit dem Validierungsdatensatz überwacht.
Wenn man dann ein Modell hat, bei dem die Validierung den geringsten Fehler zeigt
lässt man einmalig die Testdaten auf das Modell los und errechnet damit die Genauigkeit des Modells.
Zum aufsplitten der Daten benutzt man üblicherweise die Methode train_test_split() von Scikit-Learn.
Ein gutes Tutorial findest du hier:
https://realpython.com/train-test-split-python-data/