Variable admittance control enables robots to accomplish various manipulation tasks that need to interact with unstructured environments physically. Traditional learning-based methods can learn variable stiffness skills from human demonstrations and transfer them to the robot's controller. However, these methods ignore the relationship between the stiffness, the interaction force, and the motion information in an interaction task, which hinders robots from reproducing the interaction task accurately. On the other hand, the position generalization and stiffness generalization under different interaction forces have not been well considered, limiting the robot's adaptability to different environments. This paper introduces an approach to learn variable stiffness skills, and the goal is to drive the robot to demonstrate a human-like interaction behavior. The interaction behavior is modeled as a linear spring-damper-mass system, and the system's stiffness parameter and reference trajectory are encoded as a Gaussian mixture model (GMM) and dynamic movement primitives (DMP), respectively. Finally, one simulation experiment and two real experiments are given respectively to demonstrate the proposed approach's effectiveness. Compared with the traditional methods, the accuracy of the stiffness reproduced by the proposed method is improved by 28%, and the reproduced stiffness closes to the ground truth with an average relative error of 1.84%.