In [5]:
from pug.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_neural_net(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])