An empirical assessment of the contributing factors for vulnerability detection using machine learning