<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save_evaluations(self, evaluations_file = None):
 """ Saves evaluations at each iteration of the optimization :param evaluations_file: name of the file in which the results are saved. """

        iterations = np.array(range(1, self.Y.shape[0] + 1))[:, None]
        results = np.hstack((iterations, self.Y, self.X))
        header = ['Iteration', 'Y'] + ['var_' + str(k) for k in range(1, self.X.shape[1] + 1)]

        data = [header] + results.tolist()
        self._write_csv(evaluations_file, data)