What is feature engineering and why is it important in machine learning? How does feature engineering improve the performance of machine learning models? What are the common techniques used for creating and transforming features from raw data? How does domain knowledge help in effective feature engineering? What are the challenges and best practices associated with feature engineering in real-world projects?