<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fit(self, records, mini_batch_size=None, wait=True, logs=True, job_name=None):
 """Fit this Estimator on serialized Record objects, stored in S3. ``records`` should be an instance of :class:`~RecordSet`. This defines a collection of S3 data files to train this ``Estimator`` on. Training data is expected to be encoded as dense or sparse vectors in the "values" feature on each Record. If the data is labeled, the label is expected to be encoded as a list of scalas in the "values" feature of the Record label. More information on the Amazon Record format is available at: https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html See :meth:`~AmazonAlgorithmEstimatorBase.record_set` to construct a ``RecordSet`` object from :class:`~numpy.ndarray` arrays. Args: records (:class:`~RecordSet`):
 The records to train this ``Estimator`` on mini_batch_size (int or None):
 The size of each mini-batch to use when training. If ``None``, a default value will be used. wait (bool):
 Whether the call should wait until the job completes (default: True). logs (bool):
 Whether to show the logs produced by the job. Only meaningful when wait is True (default: True). job_name (str):
 Training job name. If not specified, the estimator generates a default job name, based on the training image name and current timestamp. """

        self._prepare_for_training(records, job_name=job_name, mini_batch_size=mini_batch_size)

        self.latest_training_job = _TrainingJob.start_new(self, records)
        if wait:
            self.latest_training_job.wait(logs=logs)