关于预测模型构建中Cross-Validation(交叉验证)的作用问题

请问在预测模型构建过程中:

①训练集、验证集和测试集是如何定义/确定的?

②K折Cross-Validation(交叉验证)是在提前分好的训练集数据中进行吗?

③CV的作用是评估不同模型算法(比如随机森林、logistic回归)的预测性能,还是确定某个模型的最优参数(比如logistic回归模型中的各个自变量参数)?