Professional Documents
Culture Documents
ML Lab
ML Lab
1. The probability that it is Friday and that a student is absent is 3 %. Since there are 5
school days in aweek, the probability that it is Friday is 20 %. What is the probability that
a student is absent given that today is Friday? Apply Baye’s rule in python to get the result
#given
prob_fri_and_abs = 3/100
prob_fri = 20/100
prob_abs_on_fri = prob_fri_and_abs/prob_fri
Output :
import pandas as pd
df = pd.read_csv("knn.csv")
dist = [[],[]]
for i in range(0,30):
x = df['Attendance'][i]
y = df['Marks'][i]
dist[0].append(distance)
dist[1].append(i)
tuple.sort()
k = int(input('Enter k '))
Pass = 0
Fail = 0
for i in range(0,k):
a = tuple[i][1]
if df['Result'][a] == 'Pass':
Pass += 1
else:
Fail += 1
result = 'Pass'
else:
result = 'Fail'
Input :
Enter attendance 90
Enter marks 25
Enter k 5
Output :
90 25 Pass
3. Implement k-means clustering using python
import pandas as pd
df = pd.read_csv("k means.csv")
list = [0]*30
initial = [0]*5
for i in range(0,5):
ele -= 1
list[ele] = 1
initial[i] = ele
c= [[None],
[None],
[None],
[None],
[None]]
for i in range(0,5):
c[i][0] = initial[i]+1
for i in range(0,30):
if list[i] == 0:
mini = 100000
elem = 0
a = df['Attendance'][i]
b = df['Marks'][i]
for j in range(0,5):
meana = 0
meanm = 0
for k in range(0,len(c[j])):
x = c[j][k]
meana += df['Attendance'][x-1]
meanm += df['Marks'][x-1]
meana = meana/len(c[j])
meanm = meanm/len(c[j])
mini = dist
elem = j
c[elem].append(i+1)
Input :
Output :
import numpy as np
import pandas as pd
x = df['median_income']
y = df['median_house_value']
meanx = np.mean(x)
meany = np.mean(y)
length = len(x)
n=0
d=0
for i in range(length):
d += (x[i] - meanx)**2
m = n/d
c = meany - (m * meanx)
xmin = np.min(x)
xmax = np.max(x)
line_y = m*line_x + c
Y = round((m*X + c), 2)
Output :
import pandas as pd
df = pd.read_csv('golf_df.csv')
unique_result = df.Play.unique()
res = {}
tot = {}
a=0
for i in df.index:
if df.Play[i] == result:
a += 1
tot[result] = a
res[result] = a/len(df)
print(res)
a=0
for i in df.index:
if df[attribute][i] == att:
if df.Play[i] == result:
a += 1
r = round(a/tot[result],3)
dic[str(att)+'-'+result] = r
print(dic)
unique_outlook = df.Outlook.unique()
outlook = {}
unique_temp = df.Temperature.unique()
temp = {}
unique_hum = df.Humidity.unique()
hum = {}
unique_windy = df.Windy.unique()
windy = {}
return(final)
for i in range(n):
final = calculate(o, t, h, w)
Output :
{'sunny-no': 0.667, 'sunny-yes': 0.222, 'overcast-no': 0.0, 'overcast-yes': 0.444, 'rainy-no': 0.333, 'rainy-yes': 0.333}
{'hot-no': 0.333, 'hot-yes': 0.222, 'mild-no': 0.5, 'mild-yes': 0.444, 'cool-no': 0.167, 'cool-yes': 0.333}
import random
#input
parent = []
for i in range(12):
parent.append(binary)
parent_set = []
available = [0,1,2,3,4,5,6,7,8,9,10,11]
for i in range(6):
p = []
for j in range(2):
r = random.randint(0, len(available)-1)
p.append(parent[available[r]])
available.pop(r)
parent_set.append(p)
#crossover
crossover = []
a1 = a[:single] + b[single:]
b1 = b[:single] + a[single:]
crossover.extend(ab)
for i in range(6):
a = parent_set[i][0]
b = parent_set[i][1]
cross(a,b)
#mutation
x = random.randint(0, 23)
y = random.randint(0, 7)
mutate = crossover[x]
if mutate[y] == '0':
else :
#print output
for i in range(6):
i2 = i*4
print(f'The child {x} was mutated at position {y} from {mutate} to {crossover[x]}')
Input :
Output :
import numpy as np
learning_rate = 0.2
n = len(y)
input_size = x.shape[1]
hidden_size = 3
output_size = y.shape[1]
def sigmoid(x):
def back_propogation(num):
global w1, w2
for i in range(num):
#forward phase
hidden_in = np.dot(x, w1)
hidden_out = sigmoid(hidden_in)
output_out = sigmoid(output_in)
mse = mean_sq_error(output_out, y)
output_error = output_out - y
#update weights
back_propogation(num)
hidden_out = sigmoid(hidden_in)
output_out = sigmoid(output_in)
output_out
Output :
import pandas as pd
import numpy as np
eps = np.finfo(float).eps
df = pd.read_csv('golf_df.csv')
df[key] = df[key].astype(str).str.lower()
result = df.keys()[-1]
unique_result = df[result].unique()
def find_entropy(df):
entropy = 0
fraction = df[result].value_counts()[value]/len(df[result])
entropy += -fraction*np.log2(fraction)
return entropy
att_ent = {}
def find_entropy_attribute(df,att):
variables = df[att].unique()
ent2 = 0
ent = 0
total = len(df[att][df[att]==var])
frac = num/(total+eps)
ent += -frac*log(frac+eps)
frac2 = total/len(df)
ent2 += -frac2*ent
att_ent[var] = -frac2*ent
return abs(ent2)
def find_winner(df):
IG = []
return df.keys()[:-1][np.argmax(IG)]
result = df.keys()[-1]
winner = find_winner(df)
attValue = np.unique(df[winner])
if tree is None:
tree={}
tree[winner] = {}
subtable = sub_table(df,winner,value)
clValue,counts = np.unique(subtable[result],return_counts=True)
if len(counts)==1:
tree[winner][value] = clValue[0]
else:
tree[winner][value] = buildtree(subtable)
return tree
ID3 = buildtree(df)
print(ID3)
value = inputs[nodes]
tree = tree[nodes][value]
prediction = 0
if type(tree) is dict:
else:
prediction = tree
break;
return prediction
inputs = {}
Output :
9. Write a python program to create a list of data and read the data
import pandas as pd
else:
Output :
Name is John
10. Write a python program to calculate the conditional and unconditional
probabilities of an attribute
import pandas as pd
['Male', 'Married', 30, 60000], ['Male', 'Married', 44, 60000], ['Female', 'Single', 25, 40000],
ranges = pd.cut(df.Salary, bins = [0, 30001, 50000, 100000], labels = ['Low', 'Medium', 'High'])
r = (df['Salary ranges'].value_counts())
m = (df['Marital Status'].value_counts())
for i in unique_ranges:
uncond = r[i]/len(df)
for j in unique_m:
cond = x/m[j]
Output :