如何预测2050年家庭用水量

问题描述 投票:0回答:1

我有与家庭用水量相关的数据。

关键问题是未来是否需要更多的净水厂。

人口将会减少。这意味着家庭用水量将会下降。

但是,一人和二人家庭的数量将会增加。这意味着家庭用水量将会增加。 因为根据家庭用水量,一人或二人家庭的LPCD(人均升日)比三人以上家庭要大。

因此,我想知道2050年我们是否需要更多的净水厂。

我添加了数据集和代码。 我的代码结果不好。

你能检查一下我的代码和算法吗?

数据如下。

我想尽快解释一下这些数据。

它有 8 列。因变量只有一个,即“家庭水消耗单位吨”。 年份列是索引。 我想预测 2050 年的家庭水消费单位吨。 最后,我想添加一个新列,其名称是预测的home_water_conspiration_unit_ton 家庭用水量单位吨旁边。

year population one_person_household two_person_household three_person_household four_person_household over_five_person_household household_water_consumption_unit_ton
2000 9987930 504192 524864 672410 992600 398643 736533992
2001 10000519 547177 552125 680530 974176 377162 737784659
2002 9958941 587392 578067 691449 965620 360548 720900652
2003 9951247 627630 604403 702167 955230 343748 728580066
2004 9961348 664390 628852 712084 944864 327397 736276327
2005 9938574 680954 667925 734488 925190 314516 731047705
2006 9967058 715994 687962 747218 908864 305547 730195428
2007 9978147 752891 710167 758626 888833 296230 723904433
2008 10021075 789796 732572 770074 868434 286999 720192072
2009 10047820 827183 754501 781133 848992 278113 720065222
2010 9998015 873490 780516 793852 819605 273818 721759866
2011 9981786 912149 806492 810168 805059 267042 717440010
2012 9946147 942756 826655 816961 780740 256541 718772932
2013 9900300 974726 849422 827169 759895 247346 716525298
2014 9885586 1009040 872664 838736 742139 238961 709886455
2015 9851890 1091753 913206 809929 704925 221480 713414487
2016 9754115 1120942 922630 809776 685456 211842 713140965
2017 9678697 1156019 939794 807432 664832 201401 706671587
2018 9610366 1202059 961845 802325 640190 190013 707667562
2019 9570573 1264616 986824 796531 616312 178206 702018748
2020 9531427 1347931 1015012 788615 601117 165243 726236303
2021 9416204 1442762 1040803 776135 578948 152862 723061075
2022 9326928 1470829 1060934 772956 558695 146904 697989260
2023 9254416 1495933 1083138 770345 538590 141003
2024 9188176 1518992 1104487 768119 519801 135338
2025 9127282 1539412 1126594 765091 500890 129830
2026 9069928 1555388 1147789 762289 483018 124543
2027 9015625 1568297 1165635 760139 467095 119791
2028 8963931 1579372 1183329 757447 451001 115112
2029 8914421 1587827 1199847 754807 435503 110598
2030 8867287 1594075 1215913 751805 420406 106351
2031 8822602 1598285 1231512 749002 406041 102357
2032 8780403 1603390 1243871 745645 392901 98754
2033 8740499 1607832 1255842 741746 380126 95369
2034 8702725 1611749 1267765 737249 367466 92070
2035 8666810 1615786 1278195 732706 355650 89005
2036 8630627 1617794 1288960 728200 344472 86150
2037 8592309 1621666 1298302 721994 333335 83217
2038 8551772 1624230 1307370 715364 322635 80473
2039 8508790 1625820 1315638 708488 312078 77784
2040 8463136 1626839 1322376 701038 301812 75173
2041 8414718 1624355 1329443 693890 291957 72606
2042 8363292 1620407 1335766 686966 281866 69790
2043 8308708 1614025 1340496 680521 272400 67142
2044 8250943 1605772 1344088 673708 263321 64596
2045 8190084 1597183 1345850 666053 254362 62098
2046 8126485 1585580 1347217 659039 245656 59640
2047 8060229 1572726 1347318 652280 237100 57257
2048 7991561 1560062 1344803 645322 229015 55049
2049 7920659 1547577 1340961 637729 220988 52794
2050 7847750 1536003 1335075 630048 213087 50547

我的代码 代码是用colab写的。 我的代码结果不好。

!python -m pip install tensorflow scikit_learn pandas
import pandas
df = pandas.read_excel('dataset.xlsx', index_col = 0)
df

from sklearn.model_selection import train_test_split

train_df, test_df = train_test_split(df, test_size=0.1, random_state=5) # train data : test data = 9:1
train_df, valid_df = train_test_split(train_df, test_size=0.2, random_state=5)# train data : valid data = 8 :2

split independent variable and dependent variable
X_train, y_train = train_df.iloc[:, :-1], train_df.iloc[:,-1]
X_valid, y_valid = valid_df.iloc[:, :-1], valid_df.iloc[:,-1]
X_test, y_test = test_df.iloc[:, :-1], test_df.iloc[:,-1]

print(X_train.shape, y_train.shape)
print(X_valid.shape, y_valid.shape)
print(X_test.shape, y_test.shape)

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import InputLayer, Dense

model = Sequential()
model.add(InputLayer(input_shape = (6,))) # independent variables 6
model.add(Dense(1))

from tensorflow.keras.losses import MeanSquaredError
model.compile(loss=MeanSquaredError())

model.fit(X_train, y_train, validation_data = (X_valid, y_valid), epochs = 1000, verbose = 0)
python machine-learning deep-learning
1个回答
0
投票

如果以年份为 x 轴绘制折线图,则可以为第 2-8 列绘制一条线(第 8 列的线提前切断)。这将使您更容易看到所有趋势如何增加和减少,以及它们如何相互比较和关联。特别是对于家庭水消耗单位吨,您可以查看到目前为止的线,以猜测趋势可能如何继续。 这是制作线图的文档。

根据您想深入研究的深度,您可以使用线性回归来估计趋势将如何继续,或者您可以直接观察它以了解趋势似乎如何发展的基本概念(例如:以增加的速率增加、以减少的速率增加、以一致的速率减少等)。它还会记住其他列,因为如果其他列之一的感知趋势在 2023 年至 2050 年间发生巨大变化,这可能意味着也可能不意味着第 8 列的趋势也可能发生巨大变化。

© www.soinside.com 2019 - 2024. All rights reserved.