Skip to content

Commit 794ae3f

Browse files
python 3
1 parent 072dd4d commit 794ae3f

11 files changed

+415
-54
lines changed

supervised_class/bayes.py

+14-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# https://deeplearningcourses.com/c/data-science-supervised-machine-learning-in-python
22
# https://www.udemy.com/data-science-supervised-machine-learning-in-python
33
# This is an example of a Bayes classifier on MNIST data.
4+
from __future__ import print_function, division
5+
from future.utils import iteritems
6+
from builtins import range, input
7+
# Note: you may need to update your version of future
8+
# sudo pip install -U future
9+
410

511
import numpy as np
612
from util import get_data
@@ -9,7 +15,7 @@
915
from scipy.stats import multivariate_normal as mvn
1016

1117
class Bayes(object):
12-
def fit(self, X, Y, smoothing=10e-3):
18+
def fit(self, X, Y, smoothing=1e-2):
1319
N, D = X.shape
1420
self.gaussians = dict()
1521
self.priors = dict()
@@ -30,27 +36,27 @@ def predict(self, X):
3036
N, D = X.shape
3137
K = len(self.gaussians)
3238
P = np.zeros((N, K))
33-
for c, g in self.gaussians.iteritems():
39+
for c, g in iteritems(self.gaussians):
3440
mean, cov = g['mean'], g['cov']
3541
P[:,c] = mvn.logpdf(X, mean=mean, cov=cov) + np.log(self.priors[c])
3642
return np.argmax(P, axis=1)
3743

3844

3945
if __name__ == '__main__':
4046
X, Y = get_data(10000)
41-
Ntrain = len(Y) / 2
47+
Ntrain = len(Y) // 2
4248
Xtrain, Ytrain = X[:Ntrain], Y[:Ntrain]
4349
Xtest, Ytest = X[Ntrain:], Y[Ntrain:]
4450

4551
model = Bayes()
4652
t0 = datetime.now()
4753
model.fit(Xtrain, Ytrain)
48-
print "Training time:", (datetime.now() - t0)
54+
print("Training time:", (datetime.now() - t0))
4955

5056
t0 = datetime.now()
51-
print "Train accuracy:", model.score(Xtrain, Ytrain)
52-
print "Time to compute train accuracy:", (datetime.now() - t0), "Train size:", len(Ytrain)
57+
print("Train accuracy:", model.score(Xtrain, Ytrain))
58+
print("Time to compute train accuracy:", (datetime.now() - t0), "Train size:", len(Ytrain))
5359

5460
t0 = datetime.now()
55-
print "Test accuracy:", model.score(Xtest, Ytest)
56-
print "Time to compute test accuracy:", (datetime.now() - t0), "Test size:", len(Ytest)
61+
print("Test accuracy:", model.score(Xtest, Ytest))
62+
print("Time to compute test accuracy:", (datetime.now() - t0), "Test size:", len(Ytest))

supervised_class/dt.py

+14-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# https://deeplearningcourses.com/c/data-science-supervised-machine-learning-in-python
22
# https://www.udemy.com/data-science-supervised-machine-learning-in-python
33
# Decision Tree for continuous-vector input, binary output
4+
from __future__ import print_function, division
5+
from future.utils import iteritems
6+
from builtins import range, input
7+
# Note: you may need to update your version of future
8+
# sudo pip install -U future
9+
10+
411
import numpy as np
512
from util import get_data, get_xor, get_donut
613
from datetime import datetime
@@ -149,7 +156,7 @@ def predict_one(self, x):
149156
def predict(self, X):
150157
N = len(X)
151158
P = np.zeros(N)
152-
for i in xrange(N):
159+
for i in range(N):
153160
P[i] = self.predict_one(X[i])
154161
return P
155162

@@ -186,20 +193,20 @@ def score(self, X, Y):
186193
Y = Y[idx]
187194

188195
# split the data
189-
Ntrain = len(Y) / 2
196+
Ntrain = len(Y) // 2
190197
Xtrain, Ytrain = X[:Ntrain], Y[:Ntrain]
191198
Xtest, Ytest = X[Ntrain:], Y[Ntrain:]
192199

193200
model = DecisionTree()
194201
# model = DecisionTree(max_depth=7)
195202
t0 = datetime.now()
196203
model.fit(Xtrain, Ytrain)
197-
print "Training time:", (datetime.now() - t0)
204+
print("Training time:", (datetime.now() - t0))
198205

199206
t0 = datetime.now()
200-
print "Train accuracy:", model.score(Xtrain, Ytrain)
201-
print "Time to compute train accuracy:", (datetime.now() - t0)
207+
print("Train accuracy:", model.score(Xtrain, Ytrain))
208+
print("Time to compute train accuracy:", (datetime.now() - t0))
202209

203210
t0 = datetime.now()
204-
print "Test accuracy:", model.score(Xtest, Ytest)
205-
print "Time to compute test accuracy:", (datetime.now() - t0)
211+
print("Test accuracy:", model.score(Xtest, Ytest))
212+
print("Time to compute test accuracy:", (datetime.now() - t0))

0 commit comments

Comments
 (0)