# Personalization of Robot Behavior Using Approach Based on Model Predictive Control
## 4 Evaluation
### Dataset  
To create a dataset, there are two possible approaches. The first is to perform experiments with a robot and a human interacting with each other, with a random user model to collect the best data. Using a random model would allow us to explore a bigger space of reactions than using no model or an arbitrarily created model. In our previous research [11], in real experiments with the robot, we used a fake job-interview scenario--a simple interaction with a dozen questions asked by the robot. In this experiment, human behavior while answering a question is analyzed, and after that, robot behavior can be modified accordingly to a personalized model. Thus, from every single experiment, we can obtain a dozen data samples. The problem is that most machine-learning algorithms require hundreds or thousands of data samples to train and evaluate. Hence, a huge number of real experiments would need to be conducted to gather enough data. Due to a lack of available time and space and a lack of participants, such an approach was not feasible. The other option is to collect data in a simulated environment, as conducted in [6]. This approach was taken in this study. It should be noted that simulated data come with its own set of drawbacks. First and foremost, the data are less certain than those from a real-world experiment. Also, to make such an approach feasible, some simplifications must be made. The biggest one is that instead of simulating the whole robot, the human, and its environment, only data collected from such an interaction were simulated. In addition, instead of personalizing for a given person, the behavior was adopted for one of the personality traits--talkativeness. The reason for this was to simplify the learning process. The data sample describing the interaction between the user and the robot consists of 51 features; see Table 1.  
Data are generated in a raw form, which is the same as real data collected in experiments with a physical robot. Later, it is converted to a more usable form. The data sample consists of three parts: data collected from the user by the robot describing a given state, the action chosen by the robot in a given state, and data collected after action execution. The first value in the data sample _time_from_last_question_ is the time from the most recent question asked by the user. It is scaled from 0 to 1 and resets after asking a question or the next round of conversation. _number_of_question_asked_ is the number of questions asked in the current round of the experiment, _time_from_last_event_ is a time from the last event that occurred in the current round. It is also scaled from 0 to 1. _silence_detected binary_ represents the information if the user was silent for long enough to finalize the current round. _user_speech_time_ is the duration during which the user was speaking. It is scaled from 0 to 1. _emotion_X_ represents the percentage of emotion \(X\) observed in the user in the current round, calculated from the top 3 emotions consequently observed in the round. The human gaze is represented by a set of features of the form _gaze_looking_on_X_, which represent the fact that the user is looking at a direction \(X\). It is a percentage of all the gaze directions observed by the user. _robot_gaze_strategy_X_ is a one-hot encoded robot gaze strategy (see [11]), _robot_state_X_ represents a one-hot encoded robot state, and _triggered_events_X_ is a list of events in the current round. For every data sample, there is also a label that is generated by the expert system representing the user, which describes the quality of the user's reaction to the robot's action:good, bad, or neutral. There are 14 possible robot actions: nothing, make louder, make quieter, gesture normal, gesture calm, gesture vivid, speak faster, speak slower, pitch higher, pitch lower, robot movements on, robot movements off, robot gaze on, and robot gaze off.