神经网络回归任务(4-3)
神经网络回归任务,通常指的是使用神经网络模型进行回归分析。回归分析是一种统计学方法,用于研究一个或多个自变量(预测变量)与一个因变量(响应变量)之间的关系。神经网络回归模型结合了神经网络和回归分析的优点,能够处理复杂的非线性关系,并提供灵活的模型结构。
神经网络回归模型(如Quantile Regression Neural Network, QRNN)由Taylor于2000年提出,是一种非参数非线性方法。它不仅可以揭示响应变量的整个条件分布,还可以模拟金融系统等领域的非线性特征。神经网络回归模型的研究已经扩展到了多个领域,包括金融、电力、气象等,并取得了较好的研究成果。
在神经网络回归任务中,通常包括以下几个步骤:
- 数据准备:收集具有自变量和因变量标签的数据集,并进行必要的数据预处理和特征工程。
- 模型构建:选择适当的神经网络结构,并定义模型的参数和损失函数。
- 模型训练:使用训练数据对神经网络进行训练,通过反向传播算法和梯度下降等方法优化模型的参数。
- 模型评估:使用测试数据对训练好的神经网络进行评估,计算预测误差和其他性能指标。
- 模型应用:将训练好的神经网络应用于实际问题中,进行预测和分析。
需要注意的是,神经网络回归模型在处理非线性关系时具有很强的能力,但也可能存在过拟合和解释性不足的问题。因此,在实际应用中需要根据具体问题和数据集的特点选择合适的模型和参数,并进行充分的验证和测试。
- 数据
date | price | bedrooms | bathrooms | sqft_living | sqft_lot | floors | waterfront | view | condition | sqft_above | sqft_basement | yr_built | yr_renovated | street | city | statezip | country |
2014/5/2 0:00 | 313000 | 3 | 1.5 | 1340 | 7912 | 1.5 | 0 | 0 | 3 | 1340 | 0 | 1955 | 2005 | 18810 Densmore Ave N | Shoreline | WA 98133 | USA |
2014/5/2 0:00 | 2384000 | 5 | 2.5 | 3650 | 9050 | 2 | 0 | 4 | 5 | 3370 | 280 | 1921 | 0 | 709 W Blaine St | Seattle | WA 98119 | USA |
2014/5/2 0:00 | 342000 | 3 | 2 | 1930 | 11947 | 1 | 0 | 0 | 4 | 1930 | 0 | 1966 | 0 | 26206-26214 143rd Ave SE | Kent | WA 98042 | USA |
2014/5/2 0:00 | 420000 | 3 | 2.25 | 2000 | 8030 | 1 | 0 | 0 | 4 | 1000 | 1000 | 1963 | 0 | 857 170th Pl NE | Bellevue | WA 98008 | USA |
2014/5/2 0:00 | 550000 | 4 | 2.5 | 1940 | 10500 | 1 | 0 | 0 | 4 | 1140 | 800 | 1976 | 1992 | 9105 170th Ave NE | Redmond | WA 98052 | USA |
2014/5/2 0:00 | 490000 | 2 | 1 | 880 | 6380 | 1 | 0 | 0 | 3 | 880 | 0 | 1938 | 1994 | 522 NE 88th St | Seattle | WA 98115 | USA |
2014/5/2 0:00 | 335000 | 2 | 2 | 1350 | 2560 | 1 | 0 | 0 | 3 | 1350 | 0 | 1976 | 0 | 2616 174th Ave NE | Redmond | WA 98052 | USA |
2014/5/2 0:00 | 482000 | 4 | 2.5 | 2710 | 35868 | 2 | 0 | 0 | 3 | 2710 | 0 | 1989 | 0 | 23762 SE 253rd Pl | Maple Valley | WA 98038 | USA |
2014/5/2 0:00 | 452500 | 3 | 2.5 | 2430 | 88426 | 1 | 0 | 0 | 4 | 1570 | 860 | 1985 | 0 | 46611-46625 SE 129th St | North Bend | WA 98045 | USA |
2014/5/2 0:00 | 640000 | 4 | 2 | 1520 | 6200 | 1.5 | 0 | 0 | 3 | 1520 | 0 | 1945 | 2010 | 6811 55th Ave NE | Seattle | WA 98115 | USA |
2014/5/2 0:00 | 463000 | 3 | 1.75 | 1710 | 7320 | 1 | 0 | 0 | 3 | 1710 | 0 | 1948 | 1994 | Burke-Gilman Trail | Lake Forest Park | WA 98155 | USA |
2014/5/2 0:00 | 1400000 | 4 | 2.5 | 2920 | 4000 | 1.5 | 0 | 0 | 5 | 1910 | 1010 | 1909 | 1988 | 3838-4098 44th Ave NE | Seattle | WA 98105 | USA |
2014/5/2 0:00 | 588500 | 3 | 1.75 | 2330 | 14892 | 1 | 0 | 0 | 3 | 1970 | 360 | 1980 | 0 | 1833 220th Pl NE | Sammamish | WA 98074 | USA |
2014/5/2 0:00 | 365000 | 3 | 1 | 1090 | 6435 | 1 | 0 | 0 | 4 | 1090 | 0 | 1955 | 2009 | 2504 SW Portland Ct | Seattle | WA 98106 | USA |
2014/5/2 0:00 | 1200000 | 5 | 2.75 | 2910 | 9480 | 1.5 | 0 | 0 | 3 | 2910 | 0 | 1939 | 1969 | 3534 46th Ave NE | Seattle | WA 98105 | USA |
2014/5/2 0:00 | 242500 | 3 | 1.5 | 1200 | 9720 | 1 | 0 | 0 | 4 | 1200 | 0 | 1965 | 0 | 14034 SE 201st St | Kent | WA 98042 | USA |
2014/5/2 0:00 | 419000 | 3 | 1.5 | 1570 | 6700 | 1 | 0 | 0 | 4 | 1570 | 0 | 1956 | 0 | 15424 SE 9th St | Bellevue | WA 98007 | USA |
2014/5/2 0:00 | 367500 | 4 | 3 | 3110 | 7231 | 2 | 0 | 0 | 3 | 3110 | 0 | 1997 | 0 | 11224 SE 306th Pl | Auburn | WA 98092 | USA |
2014/5/2 0:00 | 257950 | 3 | 1.75 | 1370 | 5858 | 1 | 0 | 0 | 3 | 1370 | 0 | 1987 | 2000 | 1605 S 245th Pl | Des Moines | WA 98198 | USA |
2014/5/2 0:00 | 275000 | 3 | 1.5 | 1180 | 10277 | 1 | 0 | 0 | 3 | 1180 | 0 | 1983 | 2009 | 12425 415th Ave SE | North Bend | WA 98045 | USA |
2014/5/2 0:00 | 750000 | 3 | 1.75 | 2240 | 10578 | 2 | 0 | 0 | 5 | 1550 | 690 | 1923 | 0 | 3225 NE 92nd St | Seattle | WA 98115 | USA |
2014/5/2 0:00 | 435000 | 4 | 1 | 1450 | 8800 | 1 | 0 | 0 | 4 | 1450 | 0 | 1954 | 1979 | 3922 154th Ave SE | Bellevue | WA 98006 | USA |
2014/5/2 0:00 | 626000 | 3 | 2.25 | 1750 | 1572 | 2.5 | 0 | 0 | 3 | 1470 | 280 | 2005 | 0 | 3140 Franklin Ave E | Seattle | WA 98102 | USA |
2014/5/2 0:00 | 612500 | 4 | 2.5 | 2730 | 12261 | 2 | 0 | 0 | 3 | 2730 | 0 | 1991 | 0 | 10212 NE 156th Pl | Bothell | WA 98011 | USA |
2014/5/2 0:00 | 495000 | 4 | 1.75 | 1600 | 6380 | 1 | 0 | 0 | 3 | 1130 | 470 | 1959 | 1989 | 2021 NE 100th St | Seattle | WA 98125 | USA |
2014/5/2 0:00 | 285000 | 3 | 2.5 | 2090 | 10834 | 1 | 0 | 0 | 4 | 1360 | 730 | 1987 | 0 | 27736 23rd Avenue South | Federal Way | WA 98003 | USA |
2014/5/2 0:00 | 615000 | 3 | 1.75 | 2360 | 7291 | 1 | 0 | 0 | 4 | 1360 | 1000 | 1948 | 0 | 8436-8438 41st Ave SW | Seattle | WA 98136 | USA |
2014/5/2 0:00 | 698000 | 4 | 2.25 | 2200 | 11250 | 1.5 | 0 | 0 | 5 | 1300 | 900 | 1920 | 0 | 1036 4th St | Kirkland | WA 98033 | USA |
2014/5/2 0:00 | 675000 | 5 | 2.5 | 2820 | 67518 | 2 | 0 | 0 | 3 | 2820 | 0 | 1979 | 2014 | 23525 SE 32nd Way | Issaquah | WA 98029 | USA |
2014/5/2 0:00 | 790000 | 3 | 2.5 | 2600 | 4750 | 1 | 0 | 0 | 4 | 1700 | 900 | 1951 | 1999 | 3314 NW 75th St | Seattle | WA 98117 | USA |
2014/5/2 0:00 | 382500 | 4 | 1.75 | 1560 | 8700 | 1 | 0 | 0 | 4 | 1560 | 0 | 1967 | 0 | 14104 119th Ave NE | Kirkland | WA 98034 | USA |
2014/5/2 0:00 | 499950 | 4 | 2.5 | 2860 | 3345 | 2 | 0 | 0 | 3 | 2190 | 670 | 2004 | 2003 | 20120 137th Ave NE | Woodinville | WA 98072 | USA |
2014/5/2 0:00 | 650000 | 4 | 2 | 1820 | 5000 | 1.5 | 0 | 1 | 3 | 1640 | 180 | 1945 | 2010 | 7201-7399 55th Ave NE | Seattle | WA 98115 | USA |
2014/5/2 0:00 | 625000 | 4 | 2.5 | 2820 | 8408 | 2 | 0 | 0 | 3 | 2820 | 0 | 2014 | 0 | 17052 4th Ave NE | Shoreline | WA 98155 | USA |
2014/5/2 0:00 | 400000 | 4 | 2.5 | 3630 | 42884 | 1.5 | 0 | 0 | 3 | 2300 | 1330 | 1979 | 2014 | 5172-5198 Heather Ave SE | Auburn | WA 98092 | USA |
2014/5/2 0:00 | 604000 | 3 | 2.5 | 3240 | 33151 | 2 | 0 | 2 | 3 | 3240 | 0 | 1995 | 0 | 30822 36th Ct SW | Federal Way | WA 98023 | USA |
2014/5/2 0:00 | 440000 | 2 | 1 | 800 | 4850 | 1 | 0 | 0 | 4 | 800 | 0 | 1944 | 0 | 4801-4899 6th Ave NW | Seattle | WA 98107 | USA |
2014/5/2 0:00 | 287200 | 3 | 3 | 1850 | 19966 | 1 | 0 | 0 | 4 | 1090 | 760 | 1992 | 0 | 23017 SE 281st Ct | Maple Valley | WA 98038 | USA |
2014/5/2 0:00 | 403000 | 3 | 2 | 1960 | 13100 | 1 | 0 | 2 | 5 | 1650 | 310 | 1957 | 0 | 17825 4th Ave SW | Normandy Park | WA 98166 | USA |
2014/5/2 0:00 | 750000 | 3 | 2.5 | 2390 | 6550 | 1 | 0 | 2 | 4 | 1440 | 950 | 1955 | 2009 | 3628 59th Ave SW | Seattle | WA 98116 | USA |
2014/5/2 0:00 | 335000 | 3 | 2.25 | 1580 | 16215 | 1 | 0 | 0 | 4 | 1580 | 0 | 1978 | 2000 | 4460 332nd Ave SE | Fall City | WA 98024 | USA |
2014/5/2 0:00 | 260000 | 4 | 2 | 1480 | 8625 | 1 | 0 | 0 | 4 | 1480 | 0 | 1974 | 0 | 2019 Aberdeen Pl SE | Renton | WA 98055 | USA |
2014/5/2 0:00 | 308500 | 2 | 1 | 850 | 6174 | 1 | 0 | 0 | 4 | 850 | 0 | 1950 | 1983 | 121 NE 147th St | Shoreline | WA 98155 | USA |
2014/5/2 0:00 | 439950 | 3 | 2.5 | 1770 | 2875 | 2 | 0 | 0 | 3 | 1770 | 0 | 1990 | 2009 | 4458 51st Ave SW | Seattle | WA 98116 | USA |
2014/5/2 0:00 | 235000 | 2 | 1 | 1210 | 9400 | 1 | 0 | 0 | 2 | 1210 | 0 | 1949 | 0 | 7542 21st Ave SW | Seattle | WA 98106 | USA |
2014/5/2 0:00 | 315000 | 3 | 1 | 1160 | 9180 | 1 | 0 | 0 | 3 | 1160 | 0 | 1968 | 1997 | 15804 198th Pl NE | Woodinville | WA 98077 | USA |
2014/5/2 0:00 | 437500 | 3 | 2.25 | 1970 | 35100 | 2 | 0 | 0 | 4 | 1970 | 0 | 1977 | 0 | 26069 SE 154th St | Issaquah | WA 98027 | USA |
2014/5/2 0:00 | 407500 | 3 | 2.5 | 1930 | 10460 | 2 | 0 | 0 | 3 | 1930 | 0 | 1996 | 0 | 4314 NE 6th Pl | Renton | WA 98059 | USA |
2014/5/2 0:00 | 445700 | 3 | 2.5 | 1270 | 1180 | 3 | 0 | 0 | 3 | 1270 | 0 | 2001 | 0 | 2640 NW 56th St | Seattle | WA 98107 | USA |
2014/5/2 0:00 | 838000 | 4 | 2.5 | 3310 | 42998 | 2 | 0 | 0 | 3 | 3310 | 0 | 2001 | 0 | 15712 NE 136th Pl | Redmond | WA 98052 | USA |
2014/5/2 0:00 | 630000 | 4 | 2.75 | 2710 | 37277 | 2 | 0 | 0 | 3 | 2710 | 0 | 2000 | 0 | 26429 SE 154th Pl | Issaquah | WA 98027 | USA |
2014/5/2 0:00 | 550000 | 3 | 1.75 | 2910 | 35200 | 1.5 | 0 | 0 | 3 | 2910 | 0 | 1979 | 2014 | 3923 229th Pl SE | Sammamish | WA 98075 | USA |
2014/5/2 0:00 | 805000 | 3 | 2 | 2710 | 4500 | 1.5 | 0 | 0 | 4 | 1880 | 830 | 1929 | 0 | 6222 30th Ave NE | Seattle | WA 98115 | USA |
2014/5/2 0:00 | 284000 | 3 | 1.75 | 1800 | 23103 | 1 | 0 | 0 | 3 | 1800 | 0 | 1968 | 1997 | 32418 NE 50th St | Carnation | WA 98014 | USA |
2014/5/2 0:00 | 470000 | 5 | 2.5 | 2210 | 9655 | 1 | 0 | 0 | 3 | 1460 | 750 | 1976 | 0 | 19334 89th Ave NE | Bothell | WA 98011 | USA |
2014/5/2 0:00 | 430000 | 4 | 1.5 | 1920 | 10000 | 1 | 0 | 0 | 4 | 1070 | 850 | 1954 | 1979 | 4071 156th Ave SE | Bellevue | WA 98006 | USA |
2014/5/2 0:00 | 491500 | 4 | 1.75 | 2190 | 125452 | 1 | 0 | 2 | 3 | 2190 | 0 | 1968 | 1997 | 36850 204th Ave SE | Auburn | WA 98092 | USA |
2014/5/2 0:00 | 785000 | 5 | 3.25 | 3660 | 11995 | 2 | 0 | 2 | 3 | 3660 | 0 | 2006 | 0 | 7425 Snowberry Ave SE | Snoqualmie | WA 98065 | USA |
2014/5/2 0:00 | 385000 | 3 | 3.25 | 1320 | 1327 | 2 | 0 | 0 | 3 | 1040 | 280 | 2008 | 0 | 3400 21st Ave W | Seattle | WA 98199 | USA |
2014/5/2 0:00 | 295000 | 2 | 2.5 | 1630 | 1368 | 2 | 0 | 0 | 3 | 1280 | 350 | 2009 | 0 | 5944-6082 Delridge Way SW | Seattle | WA 98106 | USA |
2014/5/2 0:00 | 555000 | 4 | 2.5 | 3310 | 6500 | 2 | 0 | 0 | 3 | 3310 | 0 | 2012 | 1912 | 35229 SE Terrace St | Snoqualmie | WA 98065 | USA |
2014/5/2 0:00 | 459990 | 3 | 2.5 | 2680 | 5539 | 2 | 0 | 0 | 3 | 2680 | 0 | 2013 | 1923 | 13800 453rd Ave SE | North Bend | WA 98045 | USA |
2014/5/2 0:00 | 625000 | 4 | 3.25 | 2730 | 54014 | 1 | 0 | 0 | 3 | 1560 | 1170 | 2007 | 0 | 9927 174th Ave SE | Renton | WA 98059 | USA |
2014/5/2 0:00 | 300000 | 3 | 2.5 | 2540 | 5050 | 2 | 0 | 0 | 3 | 2540 | 0 | 2006 | 0 | 29734 215th Terrace SE | Kent | WA 98042 | USA |
2014/5/3 0:00 | 625000 | 4 | 2.75 | 2920 | 6605 | 2 | 0 | 0 | 3 | 2920 | 0 | 2012 | 1912 | 5608 NE 5th Cir | Renton | WA 98059 | USA |
2014/5/3 0:00 | 553000 | 2 | 1 | 900 | 5000 | 1 | 0 | 0 | 3 | 900 | 0 | 1944 | 0 | 8053 29th Ave NW | Seattle | WA 98117 | USA |
2014/5/3 0:00 | 379880 | 3 | 2.5 | 1650 | 14054 | 1 | 0 | 0 | 4 | 1130 | 520 | 1986 | 0 | 13256 242nd Pl SE | Issaquah | WA 98027 | USA |
2014/5/3 0:00 | 310000 | 3 | 1 | 1010 | 9945 | 1 | 0 | 0 | 4 | 1010 | 0 | 1973 | 0 | 7528 N Fork Rd SE | Snoqualmie | WA 98065 | USA |
2014/5/4 0:00 | 775000 | 2 | 2.5 | 2680 | 7392 | 1 | 0 | 0 | 3 | 2680 | 0 | 2004 | 2003 | 13134 234th Ct NE | Redmond | WA 98053 | USA |
2014/5/4 0:00 | 365000 | 3 | 2.5 | 2200 | 7350 | 1 | 0 | 0 | 5 | 1570 | 630 | 1988 | 0 | 13420 SE 182nd St | Renton | WA 98058 | USA |
2014/5/4 0:00 | 331950 | 4 | 2.5 | 2530 | 9933 | 2 | 0 | 2 | 3 | 2010 | 520 | 1990 | 2009 | 925 48th Ct | Auburn | WA 98092 | USA |
2014/5/4 0:00 | 783500 | 3 | 2.5 | 2850 | 7130 | 2 | 0 | 0 | 3 | 1990 | 860 | 1980 | 0 | 151 Euclid Ave | Seattle | WA 98122 | USA |
2014/5/4 0:00 | 628000 | 4 | 2 | 2280 | 6010 | 1 | 0 | 0 | 3 | 1140 | 1140 | 1900 | 2005 | 205-206 Euclid Ave | Seattle | WA 98122 | USA |
2014/5/5 0:00 | 560000 | 3 | 2.5 | 1900 | 8744 | 2 | 0 | 0 | 3 | 1900 | 0 | 1987 | 2000 | 22314 NE 11th Pl | Sammamish | WA 98074 | USA |
2014/5/5 0:00 | 900000 | 3 | 1 | 1330 | 77972 | 1 | 0 | 0 | 3 | 1330 | 0 | 1928 | 1954 | 13615 NE 100th St | Kirkland | WA 98033 | USA |
2014/5/5 0:00 | 531000 | 2 | 3 | 1270 | 1175 | 2 | 0 | 0 | 3 | 1110 | 160 | 2000 | 0 | 1411 N 48th St | Seattle | WA 98103 | USA |
2014/5/5 0:00 | 831000 | 4 | 3 | 2170 | 4000 | 2 | 0 | 0 | 4 | 1610 | 560 | 1982 | 2011 | 120 31st Ave E | Seattle | WA 98112 | USA |
2014/5/5 0:00 | 780000 | 4 | 2.5 | 2730 | 10281 | 2 | 0 | 2 | 3 | 2730 | 0 | 1996 | 0 | 23140 NE 14th Ct | Sammamish | WA 98074 | USA |
2014/5/5 0:00 | 755000 | 4 | 2.5 | 2120 | 10202 | 1 | 0 | 0 | 4 | 1620 | 500 | 1960 | 2001 | 12645 SE 27th St | Bellevue | WA 98005 | USA |
2014/5/5 0:00 | 705380 | 3 | 2.5 | 2490 | 4343 | 2 | 0 | 0 | 3 | 2490 | 0 | 2003 | 0 | 3187 NE Larkspur Ln | Issaquah | WA 98029 | USA |
2014/5/5 0:00 | 627000 | 4 | 2.25 | 1990 | 7712 | 1 | 0 | 0 | 3 | 1210 | 780 | 1973 | 2013 | 18915 SE 42nd Pl | Issaquah | WA 98027 | USA |
2014/5/5 0:00 | 865000 | 4 | 3 | 3690 | 9892 | 2 | 0 | 0 | 3 | 3690 | 0 | 1998 | 2006 | 1765 267th Ct SE | Sammamish | WA 98075 | USA |
- 使用留出法划分数据集,训练集:测试集为7:3
# 使用留出法划分数据集,训练集:测试集为7:3
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
- 使用多层感知机回归模型对训练集进行训练
# 初始化多层感知机回归模型,并设置参数
model = MLPRegressor(max_iter=1000, random_state=42, hidden_layer_sizes=(100,))
- 使用训练好的模型对测试集进行预测并输出预测结果和模型的MSE和MAE。
# 对训练集进行训练
model.fit(X_train, y_train)
# 使用训练好的模型对测试集进行预测
y_pred = model.predict(X_test)
# 计算模型的均方误差(MSE)和平均绝对误差(MAE)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
# 输出预测结果和模型的MSE和MAE
print("预测结果:", y_pred)
print("模型的均方误差(MSE):", mse)
print("模型的平均绝对误差(MAE):", mae)
- 使用训练好的模型对如下数据的房价进行预测并输出结果。
# 创建新数据
new_data = pd.DataFrame([[3.0, 2.5, 1490, 8102, 2.0, 0, 0, 4, 1490, 0, 1990, 0]], columns=feature_names)
# 使用训练好的模型对提供的数据进行预测
predicted_price = model.predict(new_data)
print("提供的数据的房价预测结果:", predicted_price)
数据:[3.0,2.5,1490,8102,2.0,0,0,4,1490,0,1990,0]
完整代码:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error
# 读取数据
df = pd.read_csv('house-price.csv')
df = df.drop(columns=['date', 'street', 'city', 'statezip', 'country'])
# 设置特征名称
feature_names = ['bedrooms', 'bathrooms', 'sqft_living', 'sqft_lot', 'floors', 'waterfront', 'view', 'condition', 'sqft_above', 'sqft_basement', 'yr_built', 'yr_renovated']
X = df[feature_names]
y = df['price']
# 使用留出法划分数据集,训练集:测试集为7:3
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 初始化多层感知机回归模型,并设置参数
model = MLPRegressor(max_iter=1000, random_state=42, hidden_layer_sizes=(100,))
# 对训练集进行训练
model.fit(X_train, y_train)
# 使用训练好的模型对测试集进行预测
y_pred = model.predict(X_test)
# 计算模型的均方误差(MSE)和平均绝对误差(MAE)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
# 输出预测结果和模型的MSE和MAE
print("预测结果:", y_pred)
print("模型的均方误差(MSE):", mse)
print("模型的平均绝对误差(MAE):", mae)
# 创建新数据
new_data = pd.DataFrame([[3.0, 2.5, 1490, 8102, 2.0, 0, 0, 4, 1490, 0, 1990, 0]], columns=feature_names)
# 使用训练好的模型对提供的数据进行预测
predicted_price = model.predict(new_data)
print("提供的数据的房价预测结果:", predicted_price)
5.神经网络分类任务(4-3)
神经网络分类任务是指利用神经网络模型对输入数据进行分类。在分类任务中,神经网络通过学习输入数据中的特征和模式,将输入数据划分为不同的类别。这些类别可以是预定义的,也可以是神经网络在训练过程中自动学习得到的。
神经网络分类任务通常包括以下几个步骤:
- 数据准备:收集具有标签(即类别)的数据集,并进行必要的数据预处理和特征提取。
- 神经网络设计:选择合适的神经网络结构,如卷积神经网络(CNN)、循环神经网络(RNN)、递归神经网络(RNNs的一种)或图神经网络(GNN)等,并确定网络的层数、节点数、激活函数等参数。
- 训练神经网络:使用带有标签的训练数据对神经网络进行训练。在训练过程中,神经网络会学习输入数据中的特征和模式,并调整网络参数以最小化预测误差。
- 评估和优化:使用测试数据对训练好的神经网络进行评估,计算分类准确率、召回率、F1分数等指标。根据评估结果对神经网络进行优化,如调整网络结构、改变学习率等。
- 部署和应用:将训练好的神经网络部署到实际应用中,对新的输入数据进行分类和预测。
在神经网络分类任务中,不同的神经网络结构适用于不同的数据类型和任务需求。例如,卷积神经网络在图像分类任务中表现出色,而循环神经网络则更适合处理序列数据(如文本、语音等)。图神经网络则特别适用于处理图结构数据,如社交网络、蛋白质结构等。
需要注意的是,神经网络分类任务的性能受到多种因素的影响,包括数据集的质量、网络结构的选择、参数的调整等。因此,在实际应用中需要根据具体情况进行选择和调整,以获得最佳的分类性能。
- 数据
企业编号 | X1 | X2 | X3 | Y |
1 | -62.8 | -89.5 | 1.7 | 0 |
2 | 3.3 | -3.5 | 1.1 | 0 |
3 | -120.8 | -103.2 | 2.5 | 0 |
4 | -18.1 | -28.8 | 1.1 | 0 |
5 | -3.8 | -50.6 | 0.9 | 0 |
6 | 43 | 16.4 | 1.3 | 1 |
7 | 47 | 16 | 1.9 | 1 |
8 | -3.3 | 4 | 2.7 | 1 |
9 | 35 | 20.8 | 1.9 | 1 |
10 | 46.7 | 12.6 | 0.9 | 1 |
11 | -61.2 | -56.2 | 1.7 | 0 |
12 | -20.3 | -17.4 | 1 | 0 |
13 | -194.5 | -25.8 | 0.5 | 0 |
14 | 20.8 | -4.3 | 1 | 0 |
15 | -106.1 | -22.9 | 1.5 | 0 |
16 | 20.8 | 12.5 | 2.4 | 1 |
17 | 33 | 23.6 | 1.5 | 1 |
18 | 26.1 | 10.4 | 2.1 | 1 |
19 | 68.6 | 13.8 | 1.6 | 1 |
20 | 37.3 | 33.4 | 3.5 | 1 |
21 | -49.2 | -17.2 | 0.3 | |
22 | -19.2 | -36.7 | 0.8 | |
23 | 40.6 | 5.8 | 1.8 | |
24 | 34.6 | 26.4 | 1.8 | |
25 | 19.9 | 26.7 | 2.3 |
- 用1-10行数据作为训练集,用11-20行数据作为测试集。
# 加载数据
df = pd.read_excel('企业贷款审批数据表.xlsx') # 请替换成你的数据文件路径
# 划分训练集和测试集
train_data = df.iloc[0:17] # 使用1-10行数据作为训练集
test_data = df.iloc[17:20] # 使用11-20行数据作为测试集
# 特征和标签
X_train = train_data.drop(columns=['Y']) # 特征
y_train = train_data['Y'] # 标签
X_test = test_data.drop(columns=['Y']) # 特征
y_test = test_data['Y'] # 标签
- 使用多层感知机分类模型对训练集进行训练
# 初始化多层感知机分类模型
model = MLPClassifier(max_iter=1000, random_state=42)
# 训练模型
model.fit(X_train, y_train)
- 使用训练好的模型对测试集进行预测并输出预测结果和模型准确度。
# 对测试集进行预测
y_pred = model.predict(X_test)
# 计算模型准确度
accuracy = accuracy_score(y_test, y_pred)
print("模型准确度:", accuracy)
- 使用模型对21-25行数据的贷款申请进行评估,输出评估结果(1为同意,0为拒绝)。
# 准备新数据
new_data = df.iloc[20:25].drop(columns=['Y'])
# 使用训练好的模型进行评估
evaluation_result = model.predict(new_data)
print("评估结果:", evaluation_result)
完整代码:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score
# 加载数据
df = pd.read_excel('企业贷款审批数据表.xlsx') # 请替换成你的数据文件路径
# 划分训练集和测试集
train_data = df.iloc[0:17] # 使用1-10行数据作为训练集
test_data = df.iloc[17:20] # 使用11-20行数据作为测试集
# 特征和标签
X_train = train_data.drop(columns=['Y']) # 特征
y_train = train_data['Y'] # 标签
X_test = test_data.drop(columns=['Y']) # 特征
y_test = test_data['Y'] # 标签
# 初始化多层感知机分类模型
model = MLPClassifier(max_iter=1000, random_state=42)
# 训练模型
model.fit(X_train, y_train)
# 对测试集进行预测
y_pred = model.predict(X_test)
# 计算模型准确度
accuracy = accuracy_score(y_test, y_pred)
print("模型准确度:", accuracy)
# 准备新数据
new_data = df.iloc[20:25].drop(columns=['Y'])
# 使用训练好的模型进行评估
evaluation_result = model.predict(new_data)
print("评估结果:", evaluation_result)