X = df.copy() y = X.pop("CompressiveStrength") # Create synthetic features X["FCRatio"] = X["FineAggregate"] / X["CoarseAggregate"] X["AggCmtRatio"] = (X["CoarseAggregate"] + X["FineAggregate"]) / X["Cement"] X["WtrCmtRatio"] = X["Water"] / X["Cement"] # Train and score model on dataset with additional ratio features model = RandomForestRegressor(criterion="mae", random_state=0) score = cross_val_score( model, X, y, cv=5, scoring="neg_mean_absolute_error" ) score = -1 * score.mean() print(f"MAE Score with Ratio Features: {score:.4}")