In this publication genetic programming (GP) with data migration for symbolic regression is presented. The motivation for the development of the algorithm is to evolve models which generalize well on previously unseen data. GP with data migration uses multiple subpopulations to maintain the genetic diversity during the algorithm run and a sophisticated training subset selection strategy. Each subpopulation is evaluated on a different fixed training subset (FTS) and additionally a variable training subset (VTS) is exchanged between the subpopulations at specific data migration intervals. Thus, the individuals are evaluated on the unification of FTS and VTS and should have better generalization properties due to the regular changes of the VTS. The implemented algorithm is compared to several GP variants on a number of symbolic regression benchmark problems to test the effectiveness of the multiple populations and data migration strategy. Additionally, different algorithm configurations and migration strategies are evaluated to show their impact with respect to the achieved quality.