Skip to main content

Random forest for exoplanets

Project description

BEM : beyond the exoplanet mass-radius relation with random forest

Predicting the radius of exoplanets based on its planetary and stellar parameters

Build Status license: MIT PyPI version arXiv

Branca Edmée Marques

A portuguese scientist who worked on nuclear physics in France with Marie Curie

To install bem

pip install bem

or

git clone https://github.com/soleneulmer/bem.git
cd bem
python setup.py install

A simple decision tree

to predict exoplanet radius

How to run bem:

1. Load dataset and model

# Load exoplanet and solar system planets dataset
dataset = bem.load_dataset()
# Plot the dataset radius as a function of mass and equilibrium temperature
bem.plot_dataset(dataset)
# Build the random forest model and predict radius of the dataset
regr, y_test_predict, _, train_test_sets = bem.random_forest_regression(dataset)

2. Predict the radius of your planet

my_planet = [planetary_mass, semi major axis, eccentricity, stellar radius, stellar effective temperature, stellar mass]

or with error bars

my_planet = [planetary_mass, error, semi major axis, error eccentricity, error, stellar radius, error, stellar effective temperature, error, stellar mass, error]

# Predict a new radius
radius, my_pred_planet = bem.predict_radius(my_planet=np.array([[1.63,
								 0.034,
                                                 		 0.02,
                                                 		 0.337,
                                                 		 3505.0,
                                                 		 0.342]]),
                        		    my_name=np.array(['GJ 357 b']),
                            		    regr=regr,
                            		    jupiter_mass=False,
					    error_bar=False)
# If error_bar is True
# print('Radius: ', radius[0][0], '+-', radius[1])

3. Compute error bars for the radius predictions

# Load exoplanet and solar system planets dataset with uncertainties
dataset_errors = bem.load_dataset_errors()
# Compute the error bars for the test set planets
radii_test_output_error, _ = bem.computing_errorbars(regr,
                                                     dataset_errors,
                                                     train_test_sets)
# Plot the test set, true radius versus RF predicted radius
bem.plot_true_predicted(train_test_sets,
                        y_test_predict,
                        radii_test_output_error)

4. Radial velocity dataset

# Load the radial velocity dataset
dataset_rv = bem.load_dataset_RV()
# Predict the radius of the RV dataset
radii_RV_RF = regr.predict(dataset_rv)
# Plot the predictions of the RV dataset
bem.plot_dataset(dataset_rv, predicted_radii=radii_RV_RF, rv=True)

5. Diagnostic plots

# Plot the learning curve
bem.plot_learning_curve(regr, dataset)
# Plot the validation curves
bem.plot_validation_curves(regr, dataset, name='features')
bem.plot_validation_curves(regr, dataset, name='tree')
bem.plot_validation_curves(regr, dataset, name='depth')

6. LIME explanations

see their github

# Explain the RF predictions
# of the exoplanets from the test set
bem.plot_LIME_predictions(regr, dataset, train_test_sets)
# LIME explanation for your planet
# in this case GJ 357 b
bem.plot_LIME_predictions(regr, dataset, train_test_sets,
                          my_pred_planet=my_pred_planet,
                          my_true_radius=1.166)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bem-1.0.0.tar.gz (743.9 kB view details)

Uploaded Source

File details

Details for the file bem-1.0.0.tar.gz.

File metadata

  • Download URL: bem-1.0.0.tar.gz
  • Upload date:
  • Size: 743.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.7

File hashes

Hashes for bem-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d0abed772e2ecde8b61f0dc34440d14a173f3384de9f9b3ced793d9380ae091a
MD5 c5fbecf55c002e63df4b7fe0b6f04197
BLAKE2b-256 b741705e8f79cc54c62d37a2520f63fdc2ccc5944bd6da0c80d94b23f72e7628

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page