Artificial intelligence for fault diagnosis of rotating machinery: A review