Skip to content

Commit 67f0012

Browse files
committed
RFCT Better filename
Use 5-fold cross-validation
1 parent 2263dfe commit 67f0012

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed
Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import numpy as np
1212
from sklearn.cross_validation import KFold
1313
from sklearn.linear_model import ElasticNet, Lasso, Ridge
14+
from sklearn.metrics import r2_score
1415
from sklearn.datasets import load_boston
1516
boston = load_boston()
1617
x = boston.data
@@ -26,24 +27,18 @@
2627

2728
# Predict on the whole data:
2829
p = met.predict(x)
29-
30-
e = p - y
31-
# np.dot(e, e) == sum(ei**2 for ei in e) but faster
32-
total_error = np.dot(e, e)
33-
rmse_train = np.sqrt(total_error / len(p))
30+
r2_train = r2_score(y, p)
3431

3532
# Now, we use 10 fold cross-validation to estimate generalization error
36-
kf = KFold(len(x), n_folds=10)
37-
err = 0
33+
kf = KFold(len(x), n_folds=5)
34+
p = np.zeros_like(y)
3835
for train, test in kf:
3936
met.fit(x[train], y[train])
40-
p = met.predict(x[test])
41-
e = p - y[test]
42-
err += np.dot(e, e)
37+
p[test] = met.predict(x[test])
4338

44-
rmse_10cv = np.sqrt(err / len(x))
39+
r2_cv = r2_score(y, p)
4540
print('Method: {}'.format(name))
46-
print('RMSE on training: {}'.format(rmse_train))
47-
print('RMSE on 10-fold CV: {}'.format(rmse_10cv))
41+
print('R2 on training: {}'.format(r2_train))
42+
print('R2 on 5-fold CV: {}'.format(r2_cv))
4843
print()
4944
print()

0 commit comments

Comments
 (0)