Skip to content

Latest commit

 

History

History
70 lines (37 loc) · 7.45 KB

README.md

File metadata and controls

70 lines (37 loc) · 7.45 KB

Python-DiamondIndicatorMineral

These coding companions are designed to take you through the creation of neural networks to classify associated diamond contents for 5 different diamond indicator silicate minerals: G10 garnet (G10), eclogitic garnet (EG), chrome diopside (CRD), olivine (OL) and orthopyroxene (OPX). The csv data files are also available.

Diamond indicators are minerals that assist explorers in locating areas with diamonds. They were first recognized shortly after the discovery of the first diamond kimberlite pipes in the 1870s. By the 1970s, with the use of a scanning electron microscope (SEM), researchers were classifying these minerals using binary, or X-Y, diagrams to assist explorers with determining the likelihood of finding diamonds, but the classification did not distinguish between the diamond indicators associated with high and low diamond contents. This brings us to machine learning and neural networks. Using data collected from Benz (2006), neural networks were created to assist in the classification of diamond indicator silicate minerals associated with high or low diamond contents. The models created would greatly benefit from more samples from a greater variety of areas and future research would include testing the chemical complexity of SEM data for the ability to create reliable neural network models that could be used to assist exploration planning.

Please note that these scripts use Python-packages that are protected under their own licenses and it's recommended that each license is reviewed prior to use.

Package Descriptions

Package 'graphiz'; Ellson, J., Gansner, E., Hu, Y., North, S., Jacobsson, M., Fernandez, M., Hansen, M., Alexiev, V., Bilgin, A., Caldwell, D., Daniel, R.G., Dobkin, D., Dwyer, T., Janssen, E., Kelman, T., Foren, Y., Koutsofios, E., Lilly, B., Low., G. and Woodhull, G. (2021): https://graphviz.org/download/source/

Package 'keras'; Gulli, A. & Pal, S.(2021): https://keras.io/

Package 'matplotlib'; Silvestor, S., Valeriani, D., McDougall, D., Stansby, D., Firing, E., Prestat, E., Ariza, E., Perez, F., Thomas, I., Ernest, E., Ivanov, P., Nielsen, J.H., Seppänen, J.K., Kniazev, N., Rnou, M., Droettboom, M., Fitzpatrick, M., Rakitin, M., Varoquaux, N., Pal, N., E, P., Ganssle, P., Hobson, P., Sales de Andrade, E., Rougier, N.P., Sauerburger, F., Hannah, Corlay, S., Caswell, T.A., Hoffmann, T., Root, B. and Zalbalza, V. (2021): https://github.com/matplotlib

Package 'numpy'; Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., … Oliphant, T. E. (2021): https://numpy.org/install/

Package 'pandas'; The pandas development team (2021): https://zenodo.org/record/5501881

Package 'plotly'; Krutchen, N., Postlethwaithe, B., Parmer, C., Bronson, C., Douglas, C., Benhmani,H., Mease, J., Schneider, K., Pace, A., Drezner, N. and Phan, K. (2021): https://github.com/plotly/

Package 'pydot'; Carrerra, E., Kalinowski, S. and Nowee, P.(2021): https://github.com/pydot/pydot

Package 'sklearn'; Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M. and Duchesnay, E. (2021): https://scikit-learn.org/stable/install.html

Package 'seaborn'; Waskom, M.L. (2021): https://seaborn.pydata.org/index.html

Package 'tensorflow'; Abadi, M., Agarwal, A., Barham, P., Brevdo, E., Chen, Z., Citro, C., Corrado, G., Davis, A., Dean, J., Devin, M., Ghemawat, S., Goodfellow, I., Harp, A., Irving, G., Isard, M., Jozefowicz, R., Jia, Y., Kaiser, L., Kudlur, M., Levenberg, J., Mané, D., Schuster, M., Monga, R., Moore, S., Murray, D., Olah, C., Shlens, J., Steiner, B., Sutskever, I., Talwar, K., Tucker, P., Vanhoucke, V., Vasudevan, V., Viégas, F., Vinyals, O., Warden, P., Wattenberg, M., Wicke, M., Yu, Y., and Zheng, X. (2021): https://tensorflow.org

Script 'feature-importance-neural-networks'; Rebelo de Sá, C. (2021): https://github.com/rebelosa/feature-importance-neural-networks

References

Abadi, M., Agarwal, A., Barham, P., Brevdo, E., Chen, Z., Citro, C., Corrado, G., Davis, A., Dean, J., Devin, M., Ghemawat, S., Goodfellow, I., Harp, A., Irving, G., Isard, M., Jozefowicz, R., Jia, Y., Kaiser, L., Kudlur, M., Levenberg, J., Mané, D., Schuster, M., Monga, R., Moore, S., Murray, D., Olah, C., Shlens, J., Steiner, B., Sutskever, I., Talwar, K., Tucker, P., Vanhoucke, V., Vasudevan, V., Viégas, F., Vinyals, O., Warden, P., Wattenberg, M., Wicke, M., Yu, Y., and Zheng, X. (2015). TensorFlow: Large-scale machine learning on heterogeneous systems: https://tensorflow.org

Benz, Diana M., "Diamond indicators, trace elements, and kimberlites: A comparative study using examples from the Slave and Kaapvaal cratons." (2006). Electronic Theses and Dissertations. 7126. https://scholar.uwindsor.ca/etd/7126

Benz, D. (2021). Python-DiamondIndicatorMineral. 1.0. Script 'CodingCompanion_DiamondIndicatorSilicateMinerals-NeuralNetwork-CRD-clr'. Jupyter Notebook script version 6.3.0.

Benz, D. (2021). Python-DiamondIndicatorMineral. 1.0. Script 'CodingCompanion_DiamondIndicatorSilicateMinerals-NeuralNetwork-EG-clr'. Jupyter Notebook script version 6.3.0.

Benz, D. (2021). Python-DiamondIndicatorMineral. 1.0. Script 'CodingCompanion_DiamondIndicatorSilicateMinerals-NeuralNetwork-G10-clr'. Jupyter Notebook script version 6.3.0.

Benz, D. (2021). Python-DiamondIndicatorMineral. 1.0. Script 'CodingCompanion_DiamondIndicatorSilicateMinerals-NeuralNetwork-OL-clr'. Jupyter Notebook script version 6.3.0.

Benz, D. (2021). Python-DiamondIndicatorMineral. 1.0. Script 'CodingCompanion_DiamondIndicatorSilicateMinerals-NeuralNetwork-OPX-clr'. Jupyter Notebook script version 6.3.0.

Carrerra, E. (2004). Pydot: https://pydotplus.readthedocs.io/

Ellson, J., Gansner, E., Koutsofios, L., North, S., Woodhull, G. (2001). Graphiz - open source graph drawing tools. Lecture Notes in Computer Science. Springer-Verlag, 483-484. https://graphviz.org/.

Gulli, A. & Pal, S., (2017). Deep learning with Keras, Packt Publishing Ltd. https://keras.io/

Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., … Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585, 357–362. https://doi.org/10.1038/s41586-020-2649-2

Hunter, J.D. (2007). Matplotlib: A 2 D graphics environment. Computing in Science & Engineering, 9(3), 90-95. https://ieeexplore.ieee.org/document/4160265

McKinney, W. (2010). Data Structures for Statistical Computing in Python. Proceedings of the 9th Python in Science Conference, 56-61: http://conference.scipy.org/proceedings/scipy2010/mckinney.html.

Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M. and Duchesnay, E. (2011). Scikit-learn: Machine Learning in Python. Journal of Machine Learning Research, 12, 285-2830. https://www.jmlr.org/papers/volume12/pedregosa11a/pedregosa11a.pdf

Plotly Technologies Inc. (2015). Collaborative Data Science. Plotly Technologies Inc., Montréal, QC. https://plot.ly

Rebelo de Sá, C. (2019). Variance-based feature importance in neural networks. 22st International Conference on Discovery Science (DS 2019) Split, Croatia, October 28-30, 2019. https://link.springer.com/chapter/10.1007/978-3-030-33778-0_24

Waskom, M.L. (2021). seaborn: statistical data visualization. Journal of Open Source Software, 6 (60), 3021. https://joss.theoj.org/papers/10.21105/joss.03021