You can always try to predict something but the question would be how accurate the prediction is?
Based on the Data (cpu, memory and battery level) you can create a database and keep track of every application battery consumption. And, using of those information you can always generate a prediction. You can use ActivityManager to get list of running process.
Second, Read this interesting Article thoroughly and use WiFiManager to collect wifi state, wireless radios are a big battery drainer.For more accuracy you can even check Bluetooth radio status. Make sure to combine all these with ConnectivityManager.
Third, use power manager to check display staus.
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = pm.isScreenOn();
Combine all these together to make a better prediction.