How rules-based systems can be used for binary classification
Where have expert systems been used - past and recent applications
(c) One Fourth Labs
(1990)
(1990)
(1965)
(1995)
(2018)
Hanane et. al., Expert Systems, May 2018.
Do we need to look beyond expert systems?
(c) One Fourth Labs
Task of hiring someone for a job
10th marks
12th marks
graduate
post graduate
projects
if 10th>90 and 12>90 and GRADUATE:
return hired
elif 10th>80 and 12th>80 and POST_GRADUATE:
return hired
elif 10th<70 and 12th<70:
return not_hired
10th
12th
graduate
Output
YES / NO
Inputs
Do we need to look beyond expert systems?
(c) One Fourth Labs
Task of hiring someone for a job - involving many factors
10th marks
if 10th>90 and 12>90 and GRADUATE:
return hired
elif 10th>80 and 12th>80 and POST_GRADUATE:
return hired
elif 10th<70 and 12th<70:
return not_hired
10th
12th
graduate
12th marks
graduate
post graduate
projects
awards
.....
10th marks | 12th marks | graduate | post graduate | projects | ........... | awards |
---|---|---|---|---|---|---|
92 | 82 | yes | yes | 3 | ........... | 2 |
83 | 75.2 | yes | no | 1 | ........... | 0 |
75 | 70 | no | no | 0 | ........... | 1 |
96 | 95 | yes | yes | 5 | ........... | 4 |
90 | 89 | yes | yes | 2 | ........... | 1 |
78 | 82 | yes | no | 0 | ........... | 0 |
86 | 88 | yes | no | 1 | ........... | 1 |
Lots of data to make sense from
Output
YES / NO
Do we need to look beyond expert systems?
10th marks | 12th marks | graduate | post graduate | projects | ........... | awards |
---|---|---|---|---|---|---|
92 | 82 | yes | yes | 3 | ........... | 2 |
83 | 75.2 | yes | no | 1 | ........... | 0 |
75 | 70 | no | no | 0 | ........... | 1 |
96 | 95 | yes | yes | 5 | ........... | 4 |
90 | 89 | yes | yes | 2 | ........... | 1 |
78 | 82 | yes | no | 0 | ........... | 0 |
86 | 88 | yes | no | 1 | ........... | 1 |
if 10th>90 and 12>90 and GRADUATE:
return hired
elif 10th>80 and 12th>80 and POST_GRADUATE:
return hired
elif 10th<70 and 12th<70:
return not_hired
elif awards>2 and GRADUATE:
return hired
elif not POST_GRADUATE and publications>1:
return hired
elif projects>10 and publications>2:
return hired
elif competitions>3 and publications>3:
return hired
elif awards>5:
return hired
elif GRADUATE and not POST_GRADUATE and awards>5:
return hired
The rules can be very complex
(c) One Fourth Labs
Do we need to look beyond expert systems?
The rules can sometimes be unknown:
- task of predicting Ebola
Output
high fever
headache
sore throat
weakness
nausea
?
?
YES / NO
Inputs
(c) One Fourth Labs
Do we need to look beyond expert systems?
(c) One Fourth Labs
The rules can be sometimes inexpressible
10th marks
12th marks
graduate
post graduate
projects
Output
YES / NO
Inputs
?
I saw
(c) One Fourth Labs
How to move from writing rules to learning rules?
10th marks | 12th marks | graduate | post graduate | projects | ........... | awards | HIRED |
---|---|---|---|---|---|---|---|
92 | 82 | yes | yes | 3 | ........... | 2 | yes |
83 | 75.2 | yes | no | 1 | ........... | 0 | yes |
75 | 70 | no | no | 0 | ........... | 1 | no |
96 | 95 | yes | yes | 5 | ........... | 4 | yes |
90 | 89 | yes | yes | 2 | ........... | 1 | yes |
78 | 82 | yes | no | 0 | ........... | 0 | no |
86 | 88 | yes | no | 1 | ........... | 1 | no |
def f(x):
if 10th>90 and 12>90 and GRADUATE:
return hired
elif 10th>80 and 12th>80 and POST_GRADUATE:
return hired
elif 10th<70 and 12th<70:
return not_hired
10th
12th
graduate
Output
YES / NO
def f(x):
i=0
max_epochs=100
w = rand()
while(i<max_epochs):
dw = grad(w,w*x)
w = w - lr*dx
i += 1
return w*x