0
$\begingroup$

I am trying to build a Disease predictor based on symptoms. I am using data scraped from Symcat website. After sampling the data we have symptoms to disease mapped for training purpose.Data looks like these: X --> S1,S2,S4... Y --> D1,D2,D5. The problem is some symptoms are strong predictors for a particular disease. Say S1 is a strong predictor for D1. So basically model should predict higher probability score for D1 compared to others due to presence of S1. How to imbibe the information that S1 is strong predictor for D1 so that it can be used in model training

Tried oversampling those strong predictor to disease combination. But dont think that is right as I have a multi label data set. results are not reflecting either Dataset looks like this: ![Symptoms D1 D2 D3 S1,S2,S4 0 1 1 S3,S4,S5 1 0 0 S1,S4,S6 1 0 1]1 Symptoms are features. We are using symptoms definition embeddings. Y is 1 hot vector.

$\endgroup$

1 Answer 1

0
$\begingroup$

I can think of two way inducing priors into supervised machine learning training process.
1) Using a Bayesian framework(PYMC for example) where you can define you random variables with whatever prior you like.
2) Engineering features that describe the needed relation. For example, in your instances I would create a new Boolean feature named 'is_strong_predictor_by_prior', and would assign true if x=s1 and y=d1 and false else wise. This new feature can hold multiple priors(not only the s1>>d1 relation).

$\endgroup$
3
  • $\begingroup$ Thanks for the response. I am using the second approach with good results. $\endgroup$ Aug 5, 2019 at 8:02
  • $\begingroup$ Glad to hear, feel free accepting my answer $\endgroup$
    – yoav_aaa
    Aug 5, 2019 at 9:13
  • $\begingroup$ Rethinking on your problem, is Y the target variable? Because if its the case, then my suggestion creates target leakage(including dependent variable in a feature). $\endgroup$
    – yoav_aaa
    Aug 6, 2019 at 12:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.