# What exactly is Cross-Validation?

Based on my understanding from google and other posts, like this What is cross-validation for? and What is cross-validation? . I understand that (k- fold) cross validation means spliting the data into ($$k-1$$) training and 1 testing set. In other words, it is used for finding the model accuracy.

So, is that mean if I do cross-validation, then I don't need to split my data into training and testing dataset? Also, say if I do (in r):

model = train(target~., data = data, method = "glmnet",
trControl = trainControl("cv", number = 10),
tuneLength = 10
)


this code will find me the best model in those 10 trials, and then when I do the prediction, I am using the best model?

Cross-validation is a special form ob splitting data into training and testing data, in which this splitting does not only occur once but a number $$n$$ of times.
There is a very powerfull package that can be loaded into R, called caret. caret delivers the very powerful function train that is used in your sample code. caret does indeed take a lot out of the work of finding the best set of parameters (out of a grid of possible combinations) for machine learning; including via cross validation. You will not have to split the data by hand but splitting will occur.
it will find the best parameter combination from a given grid of parameter combinations by trying out. Before using a powerful tool like train you should understand its options well, also understand, how to influence which parameter grid is being tried out.
Fortunately caret comes with great explanations. Start here: https://topepo.github.io/caret/model-training-and-tuning.html or better start at the beginning of that book.