Heavy metal hazard decision tree | |
---|---|
Begin Instances aquaticProducts = [‘pelagic fish’, ‘inshore fish’, ‘other fishes’, ‘crustaceans’, ‘shellfish’, ‘cephalopods’, ‘algae’] heavyMetals = [‘inorganic arsenic (iAs)’, ‘cadmium (Cd)’, ‘cobalt (Co)’, ‘chromium (Cr)’, ‘copper (Cu)’, ‘iron (Fe)’, ‘manganese (Mn)’, ‘nickel (Ni)’, ‘lead (Pb)’, ‘strontium (Sr)’, ‘thallium (Tl)’, ‘zinc (Zn)’] attributes = [‘heavy_metal’, ‘food_intake’, ‘bw’, ‘rfd’, ‘HQ’, ‘EDI’, ‘ADI’] symptom = [‘hyperpigmentation and keratosis follicularis’, ‘kidney diseases’, ‘goiter’, ‘lung cancer’, ‘Alzheimer’s disease and cardiac disease’, ‘gastrointestinal disorders’, ‘parkinsonism’, ‘chronic bronchitis’, ‘intellectual disability’, ‘adult rickets’, ‘perifollicular atrophy’, ‘reduce superoxide dismutase activity in red blood cells’] //depending on different heavy metals Input: Dataset with attribute values Create empty “Root” node in the HMHDT model. //Heavy Metal Hazard Decision Tree (HMHDT) repeat (decisionTreeClassifier(criterion = "Entropy")) evaluateInformationGain(Gain(S,A), SplitInfoA(S), GainRatio(A)) classAggregated = aggregateMultipleFeatures(Instance.aquaticProducts, Instance.heavyMetals, Instance.attributes) bestAttributes = FindBestSplitAttributeAtEachLevel(ClassAggregated) calculateRiskRatio( Instance.attributes.[HQ, EDI, ADI]) updateHMHDT(HMHDT, bestAttribute) HMHDT = IdentifyDataForNextLevel(HMHDT, bestAttributes) until no node left to expand OR depth of tree in HMHDT has reached maxDepth mapping(Instance.heavyMetals, Instance.symptom) Output HMHDT End |