<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update(self, y=None, inplace=False, **kwargs):
 """ Add data or change classification parameters. Parameters y : array (n,1) array of data to classify inplace : bool whether to conduct the update in place or to return a copy estimated from the additional specifications. Additional parameters provided in **kwargs are passed to the init function of the class. For documentation, check the class constructor. """

        kwargs.update({'k': kwargs.pop('k', self.k)})
        kwargs.update({'pct': kwargs.pop('pct', self.pct)})
        kwargs.update({'truncate': kwargs.pop('truncate', self._truncated)})
        if inplace:
            self._update(y, **kwargs)
        else:
            new = copy.deepcopy(self)
            new._update(y, **kwargs)
            return new