{"id":3462,"date":"2026-02-21T11:12:59","date_gmt":"2026-02-21T10:12:59","guid":{"rendered":"https:\/\/neuraldesigner.com\/learning\/aquatic-toxicity\/"},"modified":"2026-04-22T13:59:27","modified_gmt":"2026-04-22T11:59:27","slug":"aquatic-toxicity","status":"publish","type":"learning","link":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/","title":{"rendered":"Model water toxicity using machine learning"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3462\" class=\"elementor elementor-3462\" data-elementor-post-type=\"learning\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-76cef8d8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"76cef8d8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7ef63c40\" data-id=\"7ef63c40\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7267bcf4 elementor-widget elementor-widget-text-editor\" data-id=\"7267bcf4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section><p>In this example, we build a machine learning model to calculate water toxicity using actual data from a water body.<\/p><\/section><section>Many chemicals partition in water and can exert adverse effects on aquatic systems, threatening the survival of the members of these ecosystems. Calculating a standard measure of aquatic toxicity is a lengthy and costly procedure. As a result, we do not need to measure it in the laboratory.<\/section><section><h3>Contents<\/h3><ol><li><a href=\"#ApplicationType\">Application type<\/a><\/li><li><a href=\"#DataSet\">Data set<\/a><\/li><li><a href=\"#NeuralNetwork\">Neural network<\/a><\/li><li><a href=\"#TrainingStrategy\">Training strategy<\/a><\/li><li><a href=\"#ModelSelection\">Model selection<\/a><\/li><li><a href=\"#TestingAnalysis\">Testing analysis<\/a><\/li><li><a href=\"#ModelDeployment\">Model deployment<\/a><\/li><\/ol><p>\u00a0<\/p><p>This example is solved with <a href=\"https:\/\/www.neuraldesigner.com\/\">Neural Designer<\/a>. You can use the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/free-trial\">free trial<\/a> to understand how the solution is achieved step by step.<\/p><\/section><section id=\"ApplicationType\"><h2>1. Application type<\/h2><p>This is an <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-networks-applications#Approximation\">approximation<\/a>\u00a0project since the variable to be predicted is continuous.<\/p><p>The fundamental goal here is to model the LC50 (the standard measure of toxicity) as a function of the sample&#8217;s molecular properties.<\/p><\/section><section id=\"DataSet\"><h2>2. Data set<\/h2><p>The first step is to prepare the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set\">data set<\/a>. This is the source of information for the approximation problem. It is composed of:<\/p><ul><li>Data source.<\/li><li>Variables.<\/li><li>Instances.<\/li><\/ul><h3>Data set<\/h3><p>The file <a href=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/10\/aquatic-toxicity.csv\">aquatic-toxicity.csv<\/a> contains the data for this example. Here, the number of variables (columns) is 9, and the number of instances (rows) is 546.<\/p><h3>Variables<\/h3><p>We have the following variables for this analysis:<\/p><ul><li><b>TPSA<\/b>, represents the topological polar surface area calculated using a contribution method<br \/>that takes into account N, O, P, and S.<\/li><li><b>SAacc<\/b>, describes the Van der Waals surface area (VSA) of atoms that are acceptors of hydrogen<br \/>bonds.<\/li><li><b>H-050<\/b>, represents the number of hydrogen atoms bonded to heteroatoms.<\/li><li><b>MLOGP <\/b>, is the octanol\u2013water partition coefficient (LogP) calculated from the Moriguchi model.<\/li><li><b>RDCHI <\/b>, is a topological index that encodes information about molecular size and branching but<br \/>does not account for heteroatoms.<\/li><li><b>GATS1p <\/b>, encodes information on molecular polarisability.<\/li><li><b>nN <\/b>, is the number of nitrogen atoms present in the molecule.<\/li><li><b>C-040 <\/b>, represents the number of carbon atoms of the type R\u2013C(=X)\u2013X \/ R\u2013C#X \/ X=C=X, where X<br \/>represents any electronegative atom (O, N, S, P, Se, halogens).<\/li><li><b>LC50 <\/b>, standard toxicity measure (mean lethal concentration) (-Log(mol\/L)).<\/li><\/ul><p>Our <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#TargetVariables\">target variable<\/a>\u00a0will be the last one, LC50.<\/p><h3>Instances<\/h3><p>The <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#Instances\">instances<\/a> are divided into training, selection, and testing subsets. They represent 60%, 20%, and 20% of the original cases, respectively, and are randomly split.<\/p><h3>Variables distributions<\/h3><p>Calculating the data <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#Distributions\">distributions<\/a> helps us check for the correctness of the available information and detect anomalies. The following chart shows the histogram for the power-generated variable:<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/aquatic-toxicity-LC50-distribution.webp\" \/><\/p><h3>Inputs-targets correlations<\/h3><p>It is also interesting to look for dependencies between input and target variables. To do that, we can plot an\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#InputsTargetsCorrelations\">inputs-targets correlations<\/a>\u00a0chart.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/aquatic-toxicity-correlations.webp\" \/><\/p><p>MLOGP and RDCHI are the most correlated variables because they measure lipophilicity, which is the driving force of narcosis.<\/p><h3>Scatter charts<\/h3><p>In a <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#ScatterCharts\">scatter chart<\/a>, we can visualize how this correlation works.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/aquatic-toxicity-LC50-vs-MLOGP.webp\" \/><\/p><\/section><section><h3 id=\"NeuralNetwork\">3. Neural network<\/h3><p>The second step is building a neural network representing the approximation function. It is usually composed by:<\/p><ul><li>Scaling layer.<\/li><li>Perceptron layers.<\/li><li>Unscaling layer.<\/li><\/ul><p>\u00a0<\/p><p>The neural network has 8 inputs (TPSA, SAacc, H-050, MLOGP, RDCHI, GATS1p, nN, C-040) and 1 output (LC50).<\/p><p>The\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network#ScalingLayer\">scaling layer<\/a>\u00a0contains the statistics of the inputs. We use the automatic setting for this layer to accommodate the best scaling technique for our data.<\/p><p>We use 2 perceptron layers here:<\/p><ul><li>The first perceptron layer has 8 inputs, 3 neurons, and a\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network#HyperbolicTangentActivationFunction\">hyperbolic tangent activation function<\/a>.<\/li><li>The second perceptron layer has 3 inputs, 1 neuron, and a\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network#LinearActivationFunction\">linear activation function<\/a>.<\/li><\/ul><p>\u00a0<\/p><p>The\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network#UnscalingLayer\">unscaling layer<\/a>\u00a0contains the statistics of the outputs. We use the automatic method as before.<\/p><p>The following graph represents the neural network for this example.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/aquatic-toxicity-initial-neural-network.webp\" \/><\/p><\/section><section id=\"TrainingStrategy\"><h2>4. Training strategy<\/h2><p>The fourth step is to select an appropriate <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy\">training strategy<\/a>. It is composed of two parameters:<\/p><ul><li>Loss index.<\/li><li>Optimization algorithm.<\/li><\/ul><p>\u00a0<\/p><p>The <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#LossIndex\">loss index<\/a>\u00a0defines what the neural network will learn. It is composed of an <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#ErrorTerm\">error term<\/a> and a\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#RegularizationTerm\">regularization term<\/a>.<\/p><p>The error term chosen is the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#NormalizedSquaredError\">normalized squared error<\/a>. It divides the squared error between the neural network outputs and the data set&#8217;s targets by its normalization coefficient. If the normalized squared error has a value of 1, then the neural network predicts the data &#8216;in the mean,&#8217; while a value of zero means a perfect data prediction. This error term does not have any parameters to set.<\/p><p>The regularization term is the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#L2Regularization\">L2 regularization<\/a>. It is applied to control the neural network&#8217;s complexity by reducing the parameters&#8217; value. We use a weak weight for this regularization term.<\/p><p>The\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#OptimizationAlgorithm\">optimization algorithm<\/a>\u00a0is in charge of searching for the neural network parameters that minimize the loss index.<br \/>Here, we chose the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#QuasiNewtonMethod\">quasi-Newton method<\/a> as an optimization algorithm.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/aquatic-toxicity-training-history.webp\" \/><\/p><p>The following chart shows how the training (blue) and selection (orange) errors decrease with the epochs during the training process. The final values are <b>training error = 0.331 NSE<\/b> and\u00a0<b>selection error = 0.481 NSE<\/b>, respectively.<\/p><p>Even though we are getting moderately good results, our model is far from perfect, mainly because of the small size of the Data Set we are working with. This might be one of the most significant issues of Machine Learning.<\/p><\/section><section id=\"ModelSelection\"><h2>5. Model selection<\/h2><p>In this case,\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection\">Model selection<\/a> algorithms aren&#8217;t beneficial to improve our model&#8217;s performance, as having a more complex architecture can also broaden the small Data Set problem.<\/p><\/section><section id=\"TestingAnalysis\"><h2>6. Testing analysis<\/h2><p>The purpose of the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/testing-analysis\">testing analysis<\/a>\u00a0is to validate the generalization capabilities of the neural network. We use the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#TestingInstances\">testing instances<\/a>\u00a0in the data set, which have never been used before.<\/p><p>A standard testing method in approximation applications is to perform a\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/testing-analysis#LinearRegressionAnalysis\">linear regression analysis<\/a>\u00a0between the predicted and the real pollutant level values.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/aquatic-toxicity-linear-regression-analysis.webp\" \/><\/p><p>For a perfect fit, the correlation coefficient R2 would be 1. Considering our small Data Set issues, we have <strong>R2 = 0.744<\/strong>, so the neural network predicts the testing data quite well.<\/p><p>We have achieved a mean error of 8.64%.<\/p><\/section><h2>7. Model deployment<\/h2><p>In the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-deployment\">model deployment<\/a> phase, the neural network predicts outputs for inputs it has never seen.<\/p><p>We can calculate the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-deployment#NeuralNetworkOutputs\">neural network outputs<\/a>\u00a0for a given set of inputs:<\/p><ul><li><b>TPSA(Tot)<\/b>: 48.473.<\/li><li><b>SAacc<\/b>: 58.869.<\/li><li><b>H-050<\/b>: 0.938.<\/li><li><b>MLOGP<\/b>: 2.313.<\/li><li><b>RDCHI<\/b>: 2.492.<\/li><li><b>GATS1p<\/b>: 1.046.<\/li><li><b>nN<\/b>: 1.004.<\/li><li><b>C-040<\/b>: 0.3534.<\/li><li><b>LC50:<\/b> 4.92.<\/li><\/ul><p>\u00a0<\/p><p>For that purpose, we can use\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-deployment#ResponseOptimization\">Response Optimization<\/a>. The objective of the response optimization algorithm is to exploit the mathematical model to look for optimal operating conditions. Indeed, the predictive model allows us to simulate different operating scenarios and adjust the control variables to improve efficiency.<\/p><p>An example is to minimize LC50 toxicity while maintaining the number of nitrogen atoms equal to the desired value.<\/p><p>The following table resumes the conditions for this problem.<\/p><table><tbody><tr><th>Variable name<\/th><th>Condition<\/th><th>\u00a0<\/th><\/tr><tr><th>TPSA(Tot)<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>SAacc<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>H-050<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>MLOGP<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>RDCHI<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>GATS1p<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>nN<\/th><td style=\"text-align: right;\">Equal to<\/td><td style=\"text-align: right;\">2<\/td><\/tr><tr><th>C-040<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>LC50<\/th><td style=\"text-align: right;\">Minimize<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><\/tbody><\/table><p>The following list shows the optimum values for previous conditions.<\/p><ul><li><b>TPSA(Tot)<\/b>: 93.6666.<\/li><li><b>SAacc<\/b>: 345.496.<\/li><li><b>H-050<\/b>: 1.17883.<\/li><li><b>MLOGP<\/b>: -4.5905.<\/li><li><b>RDCHI<\/b>: 4.53847.<\/li><li><b>GATS1p<\/b>: 1.30937.<\/li><li><b>nN<\/b>: 2.<\/li><li><b>C-040<\/b>: 6.24457.<\/li><li><b>LC50:<\/b> 0.18981.<\/li><\/ul><p><a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-deployment#DirectionalOutputs\"><br \/>Directional outputs<\/a>\u00a0plot the neural network outputs through some reference points.<\/p><p>The following list shows the reference points for the plots.<\/p><ul><li>TPSA(Tot): 48.473.<\/li><li>SAacc: 58.869.<\/li><li>H-050: 0.938.<\/li><li>MLOGP: 2.313.<\/li><li>RDCHI: 2.492.<\/li><li>GATS1p: 1.046.<\/li><li>nN: 1.004.<\/li><li>C-040: 0.3534.<\/li><\/ul><p>We can see here how MLOGP affects LC50:<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/aquatic-toxicity-LC50-MLOGP-directional-output.webp\" \/><\/p><p>The <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-deployment#MathematicalExpression\"> mathematical expression <\/a> represented by the predictive model is displayed next:<\/p><pre id=\"ModelDeployment\">            scaled_TPSA(Tot) = TPSA(Tot)*(1+1)\/(347.3200073-(0))-0*(1+1)\/(347.3200073-0)-1;\nscaled_SAacc = SAacc*(1+1)\/(571.9520264-(0))-0*(1+1)\/(571.9520264-0)-1;\nscaled_H-050 = H-050*(1+1)\/(18-(0))-0*(1+1)\/(18-0)-1;\nscaled_MLOGP = MLOGP*(1+1)\/(9.147999763-(-6.446000099))+6.446000099*(1+1)\/(9.147999763+6.446000099)-1;\nscaled_RDCHI = RDCHI*(1+1)\/(6.43900013-(1))-1*(1+1)\/(6.43900013-1)-1;\nscaled_GATS1p = GATS1p*(1+1)\/(2.5-(0.2809999883))-0.2809999883*(1+1)\/(2.5-0.2809999883)-1;\nscaled_nN = nN*(1+1)\/(11-(0))-0*(1+1)\/(11-0)-1;\nscaled_C-040 = C-040*(1+1)\/(11-(0))-0*(1+1)\/(11-0)-1;\nperceptron_layer_output_0 = tanh[ 0.291703 + (scaled_TPSA(Tot)*-0.391549)+ (scaled_SAacc*0.251752)+ (scaled_H-050*0.085857)+ (scaled_MLOGP*-0.277858)+ (scaled_RDCHI*-1.14629)+ (scaled_GATS1p*0.803457)+ (scaled_nN*-0.240904)+ (scaled_C-040*-0.137404) ];\nperceptron_layer_output_1 = tanh[ 0.240456 + (scaled_TPSA(Tot)*0.895344)+ (scaled_SAacc*-0.575449)+ (scaled_H-050*0.216825)+ (scaled_MLOGP*0.676507)+ (scaled_RDCHI*0.277635)+ (scaled_GATS1p*-0.115849)+ (scaled_nN*-0.0410888)+ (scaled_C-040*-0.239895) ];\nperceptron_layer_output_2 = tanh[ 1.35559 + (scaled_TPSA(Tot)*0.868684)+ (scaled_SAacc*-0.00789895)+ (scaled_H-050*0.878771)+ (scaled_MLOGP*0.816033)+ (scaled_RDCHI*-2.5133)+ (scaled_GATS1p*2.02157)+ (scaled_nN*-0.148986)+ (scaled_C-040*-1.02231) ];perceptron_layer_output_0 = [ -0.309113 + (perceptron_layer_output_0*2.07224)+ (perceptron_layer_output_1*2.20069)+ (perceptron_layer_output_2*-1.55368) ];unscaling_layer_output_0 = perceptron_layer_output_0*(10.04699993-0.1220000014)\/(1+1)+0.1220000014+1*(10.04699993-0.1220000014)\/(1+1);<\/pre><section><h2>References<\/h2><ul><li>M. Cassotti, D. Ballabio, V. Consonni, A. Mauri, I. V. Tetko, R. Todeschini (2014). <a href=\"https:\/\/journals.sagepub.com\/doi\/10.1177\/026119291404200106\">Prediction of acute aquatic toxicity towards daphnia magna using GA-kNN method<\/a>, Alternatives to Laboratory Animals (ATLA), 42,31:41.<\/li><\/ul><\/section><section><h2>Related posts<\/h2><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"author":13,"featured_media":2651,"template":"","categories":[29],"tags":[40,46,43],"class_list":["post-3462","learning","type-learning","status-publish","has-post-thumbnail","hentry","category-examples","tag-chemistry","tag-environment","tag-industry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Model water toxicity using machine learning<\/title>\n<meta name=\"description\" content=\"Build a machine learning model for LC50 (the standard measure of water toxicity) using real data from a body of water.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modeling the toxicity of a waterbody machine learning example\" \/>\n<meta property=\"og:description\" content=\"Many chemicals partition in water and can exert adverse effects on aquatic systems threatening the survival of the members of these ecosystems.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/\" \/>\n<meta property=\"og:site_name\" content=\"Neural Designer\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-22T11:59:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/08\/Candice_Image_0.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"672\" \/>\n\t<meta property=\"og:image:height\" content=\"378\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Modeling the toxicity of a waterbody machine learning example\" \/>\n<meta name=\"twitter:description\" content=\"Many chemicals partition in water and can exert adverse effects on aquatic systems threatening the survival of the members of these ecosystems.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/08\/Candice_Image_0.jpg\" \/>\n<meta name=\"twitter:site\" content=\"@NeuralDesigner\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/\",\"name\":\"Model water toxicity using machine learning\",\"isPartOf\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/aquatic-toxicity.webp\",\"datePublished\":\"2026-02-21T10:12:59+00:00\",\"dateModified\":\"2026-04-22T11:59:27+00:00\",\"description\":\"Build a machine learning model for LC50 (the standard measure of water toxicity) using real data from a body of water.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#primaryimage\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/aquatic-toxicity.webp\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/aquatic-toxicity.webp\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.neuraldesigner.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learning\",\"item\":\"https:\/\/www.neuraldesigner.com\/learning\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Model water toxicity using machine learning\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"name\":\"Neural Designer\",\"description\":\"Explanable AI Platform\",\"publisher\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.neuraldesigner.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\",\"name\":\"Neural Designer\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"width\":1024,\"height\":223,\"caption\":\"Neural Designer\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/NeuralDesigner\",\"https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Model water toxicity using machine learning","description":"Build a machine learning model for LC50 (the standard measure of water toxicity) using real data from a body of water.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/","og_locale":"en_US","og_type":"article","og_title":"Modeling the toxicity of a waterbody machine learning example","og_description":"Many chemicals partition in water and can exert adverse effects on aquatic systems threatening the survival of the members of these ecosystems.","og_url":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/","og_site_name":"Neural Designer","article_modified_time":"2026-04-22T11:59:27+00:00","og_image":[{"width":672,"height":378,"url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/08\/Candice_Image_0.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_title":"Modeling the toxicity of a waterbody machine learning example","twitter_description":"Many chemicals partition in water and can exert adverse effects on aquatic systems threatening the survival of the members of these ecosystems.","twitter_image":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/08\/Candice_Image_0.jpg","twitter_site":"@NeuralDesigner","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/","url":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/","name":"Model water toxicity using machine learning","isPartOf":{"@id":"https:\/\/www.neuraldesigner.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#primaryimage"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/aquatic-toxicity.webp","datePublished":"2026-02-21T10:12:59+00:00","dateModified":"2026-04-22T11:59:27+00:00","description":"Build a machine learning model for LC50 (the standard measure of water toxicity) using real data from a body of water.","breadcrumb":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#primaryimage","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/aquatic-toxicity.webp","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/aquatic-toxicity.webp","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/aquatic-toxicity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.neuraldesigner.com\/"},{"@type":"ListItem","position":2,"name":"Learning","item":"https:\/\/www.neuraldesigner.com\/learning\/"},{"@type":"ListItem","position":3,"name":"Model water toxicity using machine learning"}]},{"@type":"WebSite","@id":"https:\/\/www.neuraldesigner.com\/#website","url":"https:\/\/www.neuraldesigner.com\/","name":"Neural Designer","description":"Explanable AI Platform","publisher":{"@id":"https:\/\/www.neuraldesigner.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.neuraldesigner.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.neuraldesigner.com\/#organization","name":"Neural Designer","url":"https:\/\/www.neuraldesigner.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","width":1024,"height":223,"caption":"Neural Designer"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/NeuralDesigner","https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3462","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning"}],"about":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/types\/learning"}],"author":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/users\/13"}],"version-history":[{"count":4,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3462\/revisions"}],"predecessor-version":[{"id":22067,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3462\/revisions\/22067"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media\/2651"}],"wp:attachment":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media?parent=3462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/categories?post=3462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/tags?post=3462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}