  The popularity of machine learning has wildly expanded in recent years.
Machine learning techniques have been heatedly studied in academia and applied
in the industry to create business value. However, there is a lack of
guidelines for code quality in machine learning applications. In particular,
code smells have rarely been studied in this domain. Although machine learning
code is usually integrated as a small part of an overarching system, it usually
plays an important role in its core functionality. Hence ensuring code quality
is quintessential to avoid issues in the long run. This paper proposes and
identifies a list of 22 machine learning-specific code smells collected from
various sources, including papers, grey literature, GitHub commits, and Stack
Overflow posts. We pinpoint each smell with a description of its context,
potential issues in the long run, and proposed solutions. In addition, we link
them to their respective pipeline stage and the evidence from both academic and
grey literature. The code smell catalog helps data scientists and developers
produce and maintain high-quality machine learning application code.
