Skip to content

Commit cd69e60

Browse files
committed
ENH More readable code
1 parent f2b5bdf commit cd69e60

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

‎ch08/norm.py‎

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,42 @@
22

33
classNormalizePositive(object):
44

5-
deffit(self, X, y=None):
5+
deffit(self, features, y=None):
66
# count features that are greater than zero in axis 0:
7-
binary= (X>0)
7+
binary= (features>0)
88
count0=binary.sum(axis=0)
99

1010
# to avoid division by zero, set zero counts to one:
11-
count0+= (count0==0)
11+
count0[count0==0] =1.
1212

13-
self.mean=X.sum(axis=0)/count0
13+
self.mean=features.sum(axis=0)/count0
1414

1515
# Compute variance by average squared difference to the mean, but only
1616
# consider differences where binary is True (i.e., where there was a
1717
# true rating):
18-
diff= (X-self.mean) *binary
18+
diff= (features-self.mean) *binary
1919
diff**=2
20+
# regularize the estimate of std by adding 0.1
2021
self.std=np.sqrt(0.1+diff.sum(axis=0)/count0)
2122
returnself
2223

23-
deffit_transform(self, X):
24-
returnself.fit(X).transform(X)
24+
deftransform(self, features):
25+
binary= (features>0)
26+
features=features-self.mean
27+
features/=self.std
28+
features*=binary
29+
returnfeatures
2530

26-
deftransform(self, X):
27-
binary= (X>0)
28-
X=X-self.mean
29-
X/=self.std
30-
X*=binary
31-
returnX
32-
33-
definverse_transform(self, X, copy=True):
31+
definverse_transform(self, features, copy=True):
3432
ifcopy:
35-
X=X.copy()
36-
X*=self.std
37-
X+=self.mean
38-
returnX
33+
features=features.copy()
34+
features*=self.std
35+
features+=self.mean
36+
returnfeatures
37+
38+
deffit_transform(self, features):
39+
returnself.fit(features).transform(features)
40+
3941

4042
defpredict(train):
4143
norm=NormalizePositive()

0 commit comments

Comments
(0)