神經網絡回歸任務(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)