In [5]:
from pug.ann.data import weather
df = weather.fresno
print(df.describe())
Max TemperatureF Mean TemperatureF Min TemperatureF Max Dew PointF \
count 1461.000000 1461.000000 1461.000000 1461.000000
mean 79.261465 66.875428 54.007529 49.403149
std 16.350864 14.010400 12.265078 7.492898
min 40.000000 38.000000 27.000000 25.000000
25% 65.000000 55.000000 45.000000 45.000000
50% 79.000000 66.000000 53.000000 50.000000
75% 95.000000 80.000000 65.000000 55.000000
max 111.000000 95.000000 82.000000 67.000000
MeanDew PointF Min DewpointF Max Humidity Mean Humidity \
count 1461.000000 1461.000000 1461.000000 1461.000000
mean 44.780972 38.498973 74.214921 52.416153
std 7.452126 8.439846 15.742676 15.397896
min 18.000000 4.000000 28.000000 19.000000
25% 40.000000 33.000000 61.000000 40.000000
50% 45.000000 39.000000 76.000000 50.000000
75% 51.000000 45.000000 87.000000 64.000000
max 63.000000 58.000000 100.000000 95.000000
Min Humidity Max Sea Level PressureIn Mean Sea Level PressureIn \
count 1461.000000 1461.000000 1461.000000
mean 30.114305 30.056324 29.991485
std 16.621242 0.163034 0.160462
min 4.000000 29.670000 29.550000
25% 17.000000 29.930000 29.870000
50% 26.000000 30.040000 29.970000
75% 40.000000 30.170000 30.110000
max 89.000000 30.600000 30.540000
Min Sea Level PressureIn Max VisibilityMiles Mean VisibilityMiles \
count 1461.000000 1461.000000 1461.000000
mean 29.925079 9.595483 8.713210
std 0.162644 1.286902 2.210008
min 29.470000 2.000000 1.000000
25% 29.800000 10.000000 8.000000
50% 29.900000 10.000000 10.000000
75% 30.040000 10.000000 10.000000
max 30.500000 10.000000 10.000000
Min VisibilityMiles Max Wind SpeedMPH Mean Wind SpeedMPH \
count 1461.000000 1461.000000 1461.000000
mean 7.028747 13.415469 5.285421
std 3.296614 4.982216 3.117557
min 0.000000 4.000000 0.000000
25% 4.000000 9.000000 3.000000
50% 8.000000 13.000000 5.000000
75% 10.000000 16.000000 7.000000
max 10.000000 33.000000 17.000000
Max Gust SpeedMPH CloudCover
count 1322.000000 1461.000000
mean 18.450832 2.850787
std 6.152202 2.395411
min 6.000000 0.000000
25% 14.000000 1.000000
50% 18.000000 2.000000
75% 22.000000 5.000000
max 45.000000 8.000000
In [6]:
from pug.ann import util
ds = util.pybrain_dataset_from_dataframe(df)
print(ds)
input: dim(2046, 3)
[[ 1.19325827 -0.20421695 -1.60169216]
[ 1.63790947 1.19325827 0.74860706]
[ 1.63790947 0.17691266 -1.28408415]
...,
[ 0.93917186 -0.14069535 -1.28408415]
[ 1.38382307 0.74860706 0.11339106]
[ 1.63790947 0.30395586 -1.02999775]]
target: dim(2046, 1)
[[ 50.]
[ 51.]
[ 55.]
...,
[ 54.]
[ 44.]
[ 46.]]
In [7]:
nn = util.build_ann(ds)
print(nn)
FeedForwardNetwork-26
Modules:
[<LinearLayer 'input'>, <LinearLayer 'hidden'>, <LinearLayer 'output'>]
Connections:
[<FullConnection 'FullConnection-24': 'input' -> 'hidden'>, <FullConnection 'FullConnection-25': 'hidden' -> 'output'>]
In [8]:
train = util.pb.supervised.RPropMinusTrainer(nn)
print(train)
<RPropMinusTrainer 'RPropMinusTrainer-27'>
In [9]:
ans = train.trainUntilConvergence(ds, maxEpochs=10, verbose=True)
print(ans)
('train-errors:', '[4139.9 , 3955.19 , 3783.37 , 3593.29 , 3361.81 , 3090.66 , 2774.69 , 2410.03 , 1998.28 , 1471.81 , 884.475 ]')
('valid-errors:', '[4089.56 , 3908.32 , 3739.71 , 3553.19 , 3326.07 , 3060.06 , 2750.15 , 2392.57 , 1988.98 , 1473.55 , 894.674 , 423.093 ]')
([4139.8960310591647, 3955.191433542142, 3783.3687206428003, 3593.2905941074878, 3361.8118032012608, 3090.6559403249894, 2774.687119950866, 2410.0314517727843, 1998.2758315700733, 1471.8059671912513], [4089.558608459422, 3908.3175470810306, 3739.7128566666015, 3553.1868896701071, 3326.0701954487186, 3060.0598032364178, 2750.1454518823525, 2392.5749056935315, 1988.9815833485743, 1473.5486603940292, 894.67433311603281])
Content source: hobson/pug-ann
Similar notebooks: