diff --git a/data/benchmark/auto_price.csv b/data/benchmark/auto_price.csv new file mode 100644 index 0000000..4e073ad --- /dev/null +++ b/data/benchmark/auto_price.csv @@ -0,0 +1,160 @@ +,symboling,normalized-losses,wheel-base,length,width,height,curb-weight,engine-size,bore,stroke,compression-ratio,horsepower,peak-rpm,city-mpg,highway-mpg,target +0,2.0,164.0,99.8000030517578,176.60000610351562,66.19999694824219,54.29999923706055,2337.0,109.0,3.190000057220459,3.400000095367432,10.0,102.0,5500.0,24.0,30.0,13950.0 +1,2.0,164.0,99.4000015258789,176.60000610351562,66.4000015258789,54.29999923706055,2824.0,136.0,3.190000057220459,3.400000095367432,8.0,115.0,5500.0,18.0,22.0,17450.0 +2,1.0,158.0,105.8000030517578,192.6999969482422,71.4000015258789,55.70000076293945,2844.0,136.0,3.190000057220459,3.400000095367432,8.5,110.0,5500.0,19.0,25.0,17710.0 +3,1.0,158.0,105.8000030517578,192.6999969482422,71.4000015258789,55.900001525878906,3086.0,131.0,3.130000114440918,3.400000095367432,8.300000190734863,140.0,5500.0,17.0,20.0,23875.0 +4,2.0,192.0,101.1999969482422,176.8000030517578,64.80000305175781,54.29999923706055,2395.0,108.0,3.5,2.799999952316284,8.800000190734863,101.0,5800.0,23.0,29.0,16430.0 +5,0.0,192.0,101.1999969482422,176.8000030517578,64.80000305175781,54.29999923706055,2395.0,108.0,3.5,2.799999952316284,8.800000190734863,101.0,5800.0,23.0,29.0,16925.0 +6,0.0,188.0,101.1999969482422,176.8000030517578,64.80000305175781,54.29999923706055,2710.0,164.0,3.309999942779541,3.190000057220459,9.0,121.0,4250.0,21.0,28.0,20970.0 +7,0.0,188.0,101.1999969482422,176.8000030517578,64.80000305175781,54.29999923706055,2765.0,164.0,3.309999942779541,3.190000057220459,9.0,121.0,4250.0,21.0,28.0,21105.0 +8,2.0,121.0,88.4000015258789,141.10000610351562,60.29999923706055,53.20000076293945,1488.0,61.0,2.9100000858306885,3.0299999713897705,9.5,48.0,5100.0,47.0,53.0,5151.0 +9,1.0,98.0,94.5,155.89999389648438,63.59999847412109,52.0,1874.0,90.0,3.0299999713897705,3.109999895095825,9.600000381469728,70.0,5400.0,38.0,43.0,6295.0 +10,0.0,81.0,94.5,158.8000030517578,63.59999847412109,52.0,1909.0,90.0,3.0299999713897705,3.109999895095825,9.600000381469728,70.0,5400.0,38.0,43.0,6575.0 +11,1.0,118.0,93.6999969482422,157.3000030517578,63.79999923706055,50.79999923706055,1876.0,90.0,2.970000028610229,3.2300000190734863,9.40999984741211,68.0,5500.0,37.0,41.0,5572.0 +12,1.0,118.0,93.6999969482422,157.3000030517578,63.79999923706055,50.79999923706055,1876.0,90.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,6377.0 +13,1.0,118.0,93.6999969482422,157.3000030517578,63.79999923706055,50.79999923706055,2128.0,98.0,3.0299999713897705,3.390000104904175,7.599999904632568,102.0,5500.0,24.0,30.0,7957.0 +14,1.0,148.0,93.6999969482422,157.3000030517578,63.79999923706055,50.59999847412109,1967.0,90.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,6229.0 +15,1.0,148.0,93.6999969482422,157.3000030517578,63.79999923706055,50.59999847412109,1989.0,90.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,6692.0 +16,1.0,148.0,93.6999969482422,157.3000030517578,63.79999923706055,50.59999847412109,1989.0,90.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,7609.0 +17,-1.0,110.0,103.3000030517578,174.60000610351562,64.5999984741211,59.79999923706055,2535.0,122.0,3.3399999141693115,3.4600000381469727,8.5,88.0,5000.0,24.0,30.0,8921.0 +18,3.0,145.0,95.9000015258789,173.1999969482422,66.30000305175781,50.20000076293945,2811.0,156.0,3.5999999046325684,3.900000095367432,7.0,145.0,5000.0,19.0,24.0,12964.0 +19,2.0,137.0,86.5999984741211,144.60000610351562,63.900001525878906,50.79999923706055,1713.0,92.0,2.9100000858306885,3.4100000858306885,9.600000381469728,58.0,4800.0,49.0,54.0,6479.0 +20,2.0,137.0,86.5999984741211,144.60000610351562,63.900001525878906,50.79999923706055,1819.0,92.0,2.9100000858306885,3.4100000858306885,9.199999809265137,76.0,6000.0,31.0,38.0,6855.0 +21,1.0,101.0,93.6999969482422,150.0,64.0,52.59999847412109,1837.0,79.0,2.9100000858306885,3.069999933242798,10.100000381469728,60.0,5500.0,38.0,42.0,5399.0 +22,1.0,101.0,93.6999969482422,150.0,64.0,52.59999847412109,1940.0,92.0,2.9100000858306885,3.4100000858306885,9.199999809265137,76.0,6000.0,30.0,34.0,6529.0 +23,1.0,101.0,93.6999969482422,150.0,64.0,52.59999847412109,1956.0,92.0,2.9100000858306885,3.4100000858306885,9.199999809265137,76.0,6000.0,30.0,34.0,7129.0 +24,0.0,110.0,96.5,163.39999389648438,64.0,54.5,2010.0,92.0,2.9100000858306885,3.4100000858306885,9.199999809265137,76.0,6000.0,30.0,34.0,7295.0 +25,0.0,78.0,96.5,157.10000610351562,63.900001525878906,58.29999923706055,2024.0,92.0,2.9200000762939453,3.4100000858306885,9.199999809265137,76.0,6000.0,30.0,34.0,7295.0 +26,0.0,106.0,96.5,167.5,65.19999694824219,53.29999923706055,2236.0,110.0,3.150000095367432,3.5799999237060547,9.0,86.0,5800.0,27.0,33.0,7895.0 +27,0.0,106.0,96.5,167.5,65.19999694824219,53.29999923706055,2289.0,110.0,3.150000095367432,3.5799999237060547,9.0,86.0,5800.0,27.0,33.0,9095.0 +28,0.0,85.0,96.5,175.39999389648438,65.19999694824219,54.09999847412109,2304.0,110.0,3.150000095367432,3.5799999237060547,9.0,86.0,5800.0,27.0,33.0,8845.0 +29,0.0,85.0,96.5,175.39999389648438,62.5,54.09999847412109,2372.0,110.0,3.150000095367432,3.5799999237060547,9.0,86.0,5800.0,27.0,33.0,10295.0 +30,0.0,85.0,96.5,175.39999389648438,65.19999694824219,54.09999847412109,2465.0,110.0,3.150000095367432,3.5799999237060547,9.0,101.0,5800.0,24.0,28.0,12945.0 +31,1.0,107.0,96.5,169.10000610351562,66.0,51.0,2293.0,110.0,3.150000095367432,3.5799999237060547,9.100000381469728,100.0,5500.0,25.0,31.0,10345.0 +32,0.0,145.0,113.0,199.6000061035156,69.5999984741211,52.79999923706055,4066.0,258.0,3.630000114440918,4.170000076293945,8.100000381469727,176.0,4750.0,15.0,19.0,32250.0 +33,1.0,104.0,93.0999984741211,159.10000610351562,64.19999694824219,54.09999847412109,1890.0,91.0,3.0299999713897705,3.150000095367432,9.0,68.0,5000.0,30.0,31.0,5195.0 +34,1.0,104.0,93.0999984741211,159.10000610351562,64.19999694824219,54.09999847412109,1900.0,91.0,3.0299999713897705,3.150000095367432,9.0,68.0,5000.0,31.0,38.0,6095.0 +35,1.0,104.0,93.0999984741211,159.10000610351562,64.19999694824219,54.09999847412109,1905.0,91.0,3.0299999713897705,3.150000095367432,9.0,68.0,5000.0,31.0,38.0,6795.0 +36,1.0,113.0,93.0999984741211,166.8000030517578,64.19999694824219,54.09999847412109,1945.0,91.0,3.0299999713897705,3.150000095367432,9.0,68.0,5000.0,31.0,38.0,6695.0 +37,1.0,113.0,93.0999984741211,166.8000030517578,64.19999694824219,54.09999847412109,1950.0,91.0,3.0799999237060547,3.150000095367432,9.0,68.0,5000.0,31.0,38.0,7395.0 +38,1.0,129.0,98.8000030517578,177.8000030517578,66.5,53.70000076293945,2385.0,122.0,3.390000104904175,3.390000104904175,8.600000381469727,84.0,4800.0,26.0,32.0,8845.0 +39,0.0,115.0,98.8000030517578,177.8000030517578,66.5,55.5,2410.0,122.0,3.390000104904175,3.390000104904175,8.600000381469727,84.0,4800.0,26.0,32.0,8495.0 +40,1.0,129.0,98.8000030517578,177.8000030517578,66.5,53.70000076293945,2385.0,122.0,3.390000104904175,3.390000104904175,8.600000381469727,84.0,4800.0,26.0,32.0,10595.0 +41,0.0,115.0,98.8000030517578,177.8000030517578,66.5,55.5,2410.0,122.0,3.390000104904175,3.390000104904175,8.600000381469727,84.0,4800.0,26.0,32.0,10245.0 +42,0.0,115.0,98.8000030517578,177.8000030517578,66.5,55.5,2425.0,122.0,3.390000104904175,3.390000104904175,8.600000381469727,84.0,4800.0,26.0,32.0,11245.0 +43,0.0,118.0,104.9000015258789,175.0,66.0999984741211,54.400001525878906,2670.0,140.0,3.759999990463257,3.1600000858306885,8.0,120.0,5000.0,19.0,27.0,18280.0 +44,-1.0,93.0,110.0,190.8999938964844,70.30000305175781,56.5,3515.0,183.0,3.5799999237060547,3.640000104904175,21.5,123.0,4350.0,22.0,25.0,25552.0 +45,-1.0,93.0,110.0,190.8999938964844,70.30000305175781,58.70000076293945,3750.0,183.0,3.5799999237060547,3.640000104904175,21.5,123.0,4350.0,22.0,25.0,28248.0 +46,0.0,93.0,106.6999969482422,187.5,70.30000305175781,54.900001525878906,3495.0,183.0,3.5799999237060547,3.640000104904175,21.5,123.0,4350.0,22.0,25.0,28176.0 +47,-1.0,93.0,115.5999984741211,202.6000061035156,71.69999694824219,56.29999923706055,3770.0,183.0,3.5799999237060547,3.640000104904175,21.5,123.0,4350.0,22.0,25.0,31600.0 +48,3.0,142.0,96.5999984741211,180.3000030517578,70.5,50.79999923706055,3685.0,234.0,3.4600000381469727,3.0999999046325684,8.300000190734863,155.0,4750.0,16.0,18.0,35056.0 +49,2.0,161.0,93.6999969482422,157.3000030517578,64.4000015258789,50.79999923706055,1918.0,92.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,37.0,41.0,5389.0 +50,2.0,161.0,93.6999969482422,157.3000030517578,64.4000015258789,50.79999923706055,1944.0,92.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,6189.0 +51,2.0,161.0,93.6999969482422,157.3000030517578,64.4000015258789,50.79999923706055,2004.0,92.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,6669.0 +52,1.0,161.0,93.0,157.3000030517578,63.79999923706055,50.79999923706055,2145.0,98.0,3.0299999713897705,3.390000104904175,7.599999904632568,102.0,5500.0,24.0,30.0,7689.0 +53,3.0,153.0,96.3000030517578,173.0,65.4000015258789,49.400001525878906,2370.0,110.0,3.1700000762939453,3.4600000381469727,7.5,116.0,5500.0,23.0,30.0,9959.0 +54,3.0,153.0,96.3000030517578,173.0,65.4000015258789,49.400001525878906,2328.0,122.0,3.3499999046325684,3.4600000381469727,8.5,88.0,5000.0,25.0,32.0,8499.0 +55,1.0,125.0,96.3000030517578,172.39999389648438,65.4000015258789,51.59999847412109,2365.0,122.0,3.3499999046325684,3.4600000381469727,8.5,88.0,5000.0,25.0,32.0,6989.0 +56,1.0,125.0,96.3000030517578,172.39999389648438,65.4000015258789,51.59999847412109,2405.0,122.0,3.3499999046325684,3.4600000381469727,8.5,88.0,5000.0,25.0,32.0,8189.0 +57,1.0,125.0,96.3000030517578,172.39999389648438,65.4000015258789,51.59999847412109,2403.0,110.0,3.1700000762939453,3.4600000381469727,7.5,116.0,5500.0,23.0,30.0,9279.0 +58,-1.0,137.0,96.3000030517578,172.39999389648438,65.4000015258789,51.59999847412109,2403.0,110.0,3.1700000762939453,3.4600000381469727,7.5,116.0,5500.0,23.0,30.0,9279.0 +59,1.0,128.0,94.5,165.3000030517578,63.79999923706055,54.5,1889.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,5499.0 +60,1.0,128.0,94.5,165.3000030517578,63.79999923706055,54.5,2017.0,103.0,2.990000009536743,3.470000028610229,21.899999618530277,55.0,4800.0,45.0,50.0,7099.0 +61,1.0,128.0,94.5,165.3000030517578,63.79999923706055,54.5,1918.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,6649.0 +62,1.0,122.0,94.5,165.3000030517578,63.79999923706055,54.5,1938.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,6849.0 +63,1.0,103.0,94.5,170.1999969482422,63.79999923706055,53.5,2024.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,7349.0 +64,1.0,128.0,94.5,165.3000030517578,63.79999923706055,54.5,1951.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,7299.0 +65,1.0,128.0,94.5,165.60000610351562,63.79999923706055,53.29999923706055,2028.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,7799.0 +66,1.0,122.0,94.5,165.3000030517578,63.79999923706055,54.5,1971.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,7499.0 +67,1.0,103.0,94.5,170.1999969482422,63.79999923706055,53.5,2037.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,7999.0 +68,2.0,168.0,95.0999984741211,162.39999389648438,63.79999923706055,53.29999923706055,2008.0,97.0,3.150000095367432,3.289999961853028,9.399999618530272,69.0,5200.0,31.0,37.0,8249.0 +69,0.0,106.0,97.1999969482422,173.39999389648438,65.19999694824219,54.70000076293945,2324.0,120.0,3.3299999237060547,3.470000028610229,8.5,97.0,5200.0,27.0,34.0,8949.0 +70,0.0,106.0,97.1999969482422,173.39999389648438,65.19999694824219,54.70000076293945,2302.0,120.0,3.3299999237060547,3.470000028610229,8.5,97.0,5200.0,27.0,34.0,9549.0 +71,0.0,128.0,100.4000015258789,181.6999969482422,66.5,55.09999847412109,3095.0,181.0,3.430000066757202,3.2699999809265137,9.0,152.0,5200.0,17.0,22.0,13499.0 +72,0.0,108.0,100.4000015258789,184.6000061035156,66.5,56.09999847412109,3296.0,181.0,3.430000066757202,3.2699999809265137,9.0,152.0,5200.0,17.0,22.0,14399.0 +73,0.0,108.0,100.4000015258789,184.6000061035156,66.5,55.09999847412109,3060.0,181.0,3.430000066757202,3.2699999809265137,9.0,152.0,5200.0,19.0,25.0,13499.0 +74,3.0,194.0,91.3000030517578,170.6999969482422,67.9000015258789,49.70000076293945,3071.0,181.0,3.430000066757202,3.2699999809265137,9.0,160.0,5200.0,19.0,25.0,17199.0 +75,3.0,194.0,91.3000030517578,170.6999969482422,67.9000015258789,49.70000076293945,3139.0,181.0,3.430000066757202,3.2699999809265137,7.800000190734863,200.0,5200.0,17.0,23.0,19699.0 +76,1.0,231.0,99.1999969482422,178.5,67.9000015258789,49.70000076293945,3139.0,181.0,3.430000066757202,3.2699999809265137,9.0,160.0,5200.0,19.0,25.0,18399.0 +77,0.0,161.0,107.9000015258789,186.6999969482422,68.4000015258789,56.70000076293945,3020.0,120.0,3.4600000381469727,3.190000057220459,8.399999618530273,97.0,5000.0,19.0,24.0,11900.0 +78,0.0,161.0,107.9000015258789,186.6999969482422,68.4000015258789,56.70000076293945,3197.0,152.0,3.700000047683716,3.5199999809265137,21.0,95.0,4150.0,28.0,33.0,13200.0 +79,0.0,161.0,107.9000015258789,186.6999969482422,68.4000015258789,56.70000076293945,3075.0,120.0,3.4600000381469727,2.190000057220459,8.399999618530273,95.0,5000.0,19.0,24.0,15580.0 +80,0.0,161.0,107.9000015258789,186.6999969482422,68.4000015258789,56.70000076293945,3252.0,152.0,3.700000047683716,3.5199999809265137,21.0,95.0,4150.0,28.0,33.0,16900.0 +81,0.0,161.0,107.9000015258789,186.6999969482422,68.4000015258789,56.70000076293945,3075.0,120.0,3.4600000381469727,3.190000057220459,8.399999618530273,97.0,5000.0,19.0,24.0,16630.0 +82,0.0,161.0,107.9000015258789,186.6999969482422,68.4000015258789,56.70000076293945,3252.0,152.0,3.700000047683716,3.5199999809265137,21.0,95.0,4150.0,28.0,33.0,17950.0 +83,0.0,161.0,108.0,186.6999969482422,68.30000305175781,56.0,3130.0,134.0,3.609999895095825,3.2100000381469727,7.0,142.0,5600.0,18.0,24.0,18150.0 +84,1.0,119.0,93.6999969482422,157.3000030517578,63.79999923706055,50.79999923706055,1918.0,90.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,37.0,41.0,5572.0 +85,1.0,119.0,93.6999969482422,157.3000030517578,63.79999923706055,50.79999923706055,2128.0,98.0,3.0299999713897705,3.390000104904175,7.599999904632568,102.0,5500.0,24.0,30.0,7957.0 +86,1.0,154.0,93.6999969482422,157.3000030517578,63.79999923706055,50.59999847412109,1967.0,90.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,6229.0 +87,1.0,154.0,93.6999969482422,167.3000030517578,63.79999923706055,50.79999923706055,1989.0,90.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,6692.0 +88,1.0,154.0,93.6999969482422,167.3000030517578,63.79999923706055,50.79999923706055,2191.0,98.0,2.970000028610229,3.2300000190734863,9.399999618530272,68.0,5500.0,31.0,38.0,7609.0 +89,-1.0,74.0,103.3000030517578,174.60000610351562,64.5999984741211,59.79999923706055,2535.0,122.0,3.3499999046325684,3.4600000381469727,8.5,88.0,5000.0,24.0,30.0,8921.0 +90,3.0,186.0,94.5,168.89999389648438,68.30000305175781,50.20000076293945,2778.0,151.0,3.940000057220459,3.109999895095825,9.5,143.0,5500.0,19.0,27.0,22018.0 +91,3.0,150.0,99.0999984741211,186.6000061035156,66.5,56.09999847412109,2658.0,121.0,3.539999961853028,3.069999933242798,9.3100004196167,110.0,5250.0,21.0,28.0,11850.0 +92,2.0,104.0,99.0999984741211,186.6000061035156,66.5,56.09999847412109,2695.0,121.0,3.539999961853028,3.069999933242798,9.300000190734863,110.0,5250.0,21.0,28.0,12170.0 +93,3.0,150.0,99.0999984741211,186.6000061035156,66.5,56.09999847412109,2707.0,121.0,2.539999961853028,2.069999933242798,9.300000190734863,110.0,5250.0,21.0,28.0,15040.0 +94,2.0,104.0,99.0999984741211,186.6000061035156,66.5,56.09999847412109,2758.0,121.0,3.539999961853028,3.069999933242798,9.300000190734863,110.0,5250.0,21.0,28.0,15510.0 +95,3.0,150.0,99.0999984741211,186.6000061035156,66.5,56.09999847412109,2808.0,121.0,3.539999961853028,3.069999933242798,9.0,160.0,5500.0,19.0,26.0,18150.0 +96,2.0,104.0,99.0999984741211,186.6000061035156,66.5,56.09999847412109,2847.0,121.0,3.539999961853028,3.069999933242798,9.0,160.0,5500.0,19.0,26.0,18620.0 +97,2.0,83.0,93.6999969482422,156.89999389648438,63.400001525878906,53.70000076293945,2050.0,97.0,3.619999885559082,2.359999895095825,9.0,69.0,4900.0,31.0,36.0,5118.0 +98,2.0,83.0,93.6999969482422,157.89999389648438,63.59999847412109,53.70000076293945,2120.0,108.0,3.619999885559082,2.640000104904175,8.699999809265137,73.0,4400.0,26.0,31.0,7053.0 +99,2.0,83.0,93.3000030517578,157.3000030517578,63.79999923706055,55.70000076293945,2240.0,108.0,3.619999885559082,2.640000104904175,8.699999809265137,73.0,4400.0,26.0,31.0,7603.0 +100,0.0,102.0,97.1999969482422,172.0,65.4000015258789,52.5,2145.0,108.0,3.619999885559082,2.640000104904175,9.5,82.0,4800.0,32.0,37.0,7126.0 +101,0.0,102.0,97.1999969482422,172.0,65.4000015258789,52.5,2190.0,108.0,3.619999885559082,2.640000104904175,9.5,82.0,4400.0,28.0,33.0,7775.0 +102,0.0,102.0,97.1999969482422,172.0,65.4000015258789,52.5,2340.0,108.0,3.619999885559082,2.640000104904175,9.0,94.0,5200.0,26.0,32.0,9960.0 +103,0.0,102.0,97.0,172.0,65.4000015258789,54.29999923706055,2385.0,108.0,3.619999885559082,2.640000104904175,9.0,82.0,4800.0,24.0,25.0,9233.0 +104,0.0,102.0,97.0,172.0,65.4000015258789,54.29999923706055,2510.0,108.0,3.619999885559082,2.640000104904175,7.699999809265137,111.0,4800.0,24.0,29.0,11259.0 +105,0.0,89.0,97.0,173.5,65.4000015258789,53.0,2290.0,108.0,3.619999885559082,2.640000104904175,9.0,82.0,4800.0,28.0,32.0,7463.0 +106,0.0,89.0,97.0,173.5,65.4000015258789,53.0,2455.0,108.0,3.619999885559082,2.640000104904175,9.0,94.0,5200.0,25.0,31.0,10198.0 +107,0.0,85.0,96.9000015258789,173.60000610351562,65.4000015258789,54.900001525878906,2420.0,108.0,3.619999885559082,2.640000104904175,9.0,82.0,4800.0,23.0,29.0,8013.0 +108,0.0,85.0,96.9000015258789,173.60000610351562,65.4000015258789,54.900001525878906,2650.0,108.0,3.619999885559082,2.640000104904175,7.699999809265137,111.0,4800.0,23.0,23.0,11694.0 +109,1.0,87.0,95.6999969482422,158.6999969482422,63.59999847412109,54.5,1985.0,92.0,3.049999952316284,3.0299999713897705,9.0,62.0,4800.0,35.0,39.0,5348.0 +110,1.0,87.0,95.6999969482422,158.6999969482422,63.59999847412109,54.5,2040.0,92.0,3.049999952316284,3.0299999713897705,9.0,62.0,4800.0,31.0,38.0,6338.0 +111,1.0,74.0,95.6999969482422,158.6999969482422,63.59999847412109,54.5,2015.0,92.0,3.049999952316284,3.0299999713897705,9.0,62.0,4800.0,31.0,38.0,6488.0 +112,0.0,77.0,95.6999969482422,169.6999969482422,63.59999847412109,59.09999847412109,2280.0,92.0,3.049999952316284,3.0299999713897705,9.0,62.0,4800.0,31.0,37.0,6918.0 +113,0.0,81.0,95.6999969482422,169.6999969482422,63.59999847412109,59.09999847412109,2290.0,92.0,3.049999952316284,3.0299999713897705,9.0,62.0,4800.0,27.0,32.0,7898.0 +114,0.0,91.0,95.6999969482422,169.6999969482422,63.59999847412109,59.09999847412109,3110.0,92.0,3.049999952316284,3.0299999713897705,9.0,62.0,4800.0,27.0,32.0,8778.0 +115,0.0,91.0,95.6999969482422,166.3000030517578,64.4000015258789,53.0,2081.0,98.0,3.190000057220459,3.0299999713897705,9.0,70.0,4800.0,30.0,37.0,6938.0 +116,0.0,91.0,95.6999969482422,166.3000030517578,64.4000015258789,52.79999923706055,2109.0,98.0,3.190000057220459,3.0299999713897705,9.0,70.0,4800.0,30.0,37.0,7198.0 +117,0.0,91.0,95.6999969482422,166.3000030517578,64.4000015258789,53.0,2275.0,110.0,3.2699999809265137,3.3499999046325684,22.5,56.0,4500.0,34.0,36.0,7898.0 +118,0.0,91.0,95.6999969482422,166.3000030517578,64.4000015258789,52.79999923706055,2275.0,110.0,3.2699999809265137,3.3499999046325684,22.5,56.0,4500.0,38.0,47.0,7788.0 +119,0.0,91.0,95.6999969482422,166.3000030517578,64.4000015258789,53.0,2094.0,98.0,3.190000057220459,3.0299999713897705,9.0,70.0,4800.0,38.0,47.0,7738.0 +120,0.0,91.0,95.6999969482422,166.3000030517578,64.4000015258789,52.79999923706055,2122.0,98.0,3.190000057220459,3.0299999713897705,9.0,70.0,4800.0,28.0,34.0,8358.0 +121,0.0,91.0,95.6999969482422,166.3000030517578,64.4000015258789,52.79999923706055,2140.0,98.0,3.190000057220459,3.0299999713897705,9.0,70.0,4800.0,28.0,34.0,9258.0 +122,1.0,168.0,94.5,168.6999969482422,64.0,52.59999847412109,2169.0,98.0,3.190000057220459,3.0299999713897705,9.0,70.0,4800.0,29.0,34.0,8058.0 +123,1.0,168.0,94.5,168.6999969482422,64.0,52.59999847412109,2204.0,98.0,3.190000057220459,3.0299999713897705,9.0,70.0,4800.0,29.0,34.0,8238.0 +124,1.0,168.0,94.5,168.6999969482422,64.0,52.59999847412109,2265.0,98.0,3.240000009536743,3.0799999237060547,9.399999618530272,112.0,6600.0,26.0,29.0,9298.0 +125,1.0,168.0,94.5,168.6999969482422,64.0,52.59999847412109,2300.0,98.0,3.240000009536743,3.0799999237060547,9.399999618530272,112.0,6600.0,26.0,29.0,9538.0 +126,2.0,134.0,98.4000015258789,176.1999969482422,65.5999984741211,52.0,2540.0,146.0,3.619999885559082,3.5,9.300000190734863,116.0,4800.0,24.0,30.0,8449.0 +127,2.0,134.0,98.4000015258789,176.1999969482422,65.5999984741211,52.0,2536.0,146.0,3.619999885559082,3.5,9.300000190734863,116.0,4800.0,24.0,30.0,9639.0 +128,2.0,134.0,98.4000015258789,176.1999969482422,65.5999984741211,52.0,2551.0,146.0,3.619999885559082,3.5,9.300000190734863,116.0,4800.0,24.0,30.0,9989.0 +129,2.0,134.0,98.4000015258789,176.1999969482422,65.5999984741211,52.0,2679.0,146.0,3.619999885559082,3.5,9.300000190734863,116.0,4800.0,24.0,30.0,11199.0 +130,2.0,134.0,98.4000015258789,176.1999969482422,65.5999984741211,52.0,2714.0,146.0,3.619999885559082,3.5,9.300000190734863,116.0,4800.0,24.0,30.0,11549.0 +131,2.0,134.0,98.4000015258789,176.1999969482422,65.5999984741211,53.0,2975.0,146.0,3.619999885559082,3.5,9.300000190734863,116.0,4800.0,24.0,30.0,17669.0 +132,-1.0,65.0,102.4000015258789,175.60000610351562,66.5,54.900001525878906,2326.0,122.0,3.309999942779541,3.539999961853028,8.699999809265137,92.0,4200.0,29.0,34.0,8948.0 +133,-1.0,65.0,102.4000015258789,175.60000610351562,66.5,54.900001525878906,2480.0,110.0,3.2699999809265137,3.3499999046325684,22.5,73.0,4500.0,30.0,33.0,10698.0 +134,-1.0,65.0,102.4000015258789,175.60000610351562,66.5,53.900001525878906,2414.0,122.0,3.309999942779541,3.539999961853028,8.699999809265137,92.0,4200.0,27.0,32.0,9988.0 +135,-1.0,65.0,102.4000015258789,175.60000610351562,66.5,54.900001525878906,2414.0,122.0,3.309999942779541,3.539999961853028,8.699999809265137,92.0,4200.0,27.0,32.0,10898.0 +136,-1.0,65.0,102.4000015258789,175.60000610351562,66.5,53.900001525878906,2458.0,122.0,3.309999942779541,3.539999961853028,8.699999809265137,92.0,4200.0,27.0,32.0,11248.0 +137,3.0,197.0,102.9000015258789,183.5,67.69999694824219,52.0,2976.0,171.0,3.2699999809265137,3.3499999046325684,9.300000190734863,161.0,5200.0,20.0,24.0,16558.0 +138,3.0,197.0,102.9000015258789,183.5,67.69999694824219,52.0,3016.0,171.0,3.2699999809265137,3.3499999046325684,9.300000190734863,161.0,5200.0,19.0,24.0,15998.0 +139,-1.0,90.0,104.5,187.8000030517578,66.5,54.09999847412109,3131.0,171.0,3.2699999809265137,3.3499999046325684,9.199999809265137,156.0,5200.0,20.0,24.0,15690.0 +140,2.0,122.0,97.3000030517578,171.6999969482422,65.5,55.70000076293945,2261.0,97.0,3.009999990463257,3.400000095367432,23.0,52.0,4800.0,37.0,46.0,7775.0 +141,2.0,122.0,97.3000030517578,171.6999969482422,65.5,55.70000076293945,2209.0,109.0,3.190000057220459,3.400000095367432,9.0,85.0,5250.0,27.0,34.0,7975.0 +142,2.0,94.0,97.3000030517578,171.6999969482422,65.5,55.70000076293945,2264.0,97.0,3.009999990463257,3.400000095367432,23.0,52.0,4800.0,37.0,46.0,7995.0 +143,2.0,94.0,97.3000030517578,171.6999969482422,65.5,55.70000076293945,2212.0,109.0,3.190000057220459,3.400000095367432,9.0,85.0,5250.0,27.0,34.0,8195.0 +144,2.0,94.0,97.3000030517578,171.6999969482422,65.5,55.70000076293945,2275.0,109.0,3.190000057220459,3.400000095367432,9.0,85.0,5250.0,27.0,34.0,8495.0 +145,2.0,94.0,97.3000030517578,171.6999969482422,65.5,55.70000076293945,2319.0,97.0,3.009999990463257,3.400000095367432,23.0,68.0,4500.0,37.0,42.0,9495.0 +146,2.0,94.0,97.3000030517578,171.6999969482422,65.5,55.70000076293945,2300.0,109.0,3.190000057220459,3.400000095367432,10.0,100.0,5500.0,26.0,32.0,9995.0 +147,3.0,256.0,94.5,165.6999969482422,64.0,51.400001525878906,2221.0,109.0,3.190000057220459,3.400000095367432,8.5,90.0,5500.0,24.0,29.0,9980.0 +148,-2.0,103.0,104.3000030517578,188.8000030517578,67.19999694824219,56.20000076293945,2912.0,141.0,3.7799999713897705,3.150000095367432,9.5,114.0,5400.0,23.0,28.0,12940.0 +149,-1.0,74.0,104.3000030517578,188.8000030517578,67.19999694824219,57.5,3034.0,141.0,3.7799999713897705,3.150000095367432,9.5,114.0,5400.0,23.0,28.0,13415.0 +150,-2.0,103.0,104.3000030517578,188.8000030517578,67.19999694824219,56.20000076293945,2935.0,141.0,3.7799999713897705,3.150000095367432,9.5,114.0,5400.0,24.0,28.0,15985.0 +151,-1.0,74.0,104.3000030517578,188.8000030517578,67.19999694824219,57.5,3042.0,141.0,3.7799999713897705,3.150000095367432,9.5,114.0,5400.0,24.0,28.0,16515.0 +152,-2.0,103.0,104.3000030517578,188.8000030517578,67.19999694824219,56.20000076293945,3045.0,130.0,3.619999885559082,3.150000095367432,7.5,162.0,5100.0,17.0,22.0,18420.0 +153,-1.0,74.0,104.3000030517578,188.8000030517578,67.19999694824219,57.5,3157.0,130.0,3.619999885559082,3.150000095367432,7.5,162.0,5100.0,17.0,22.0,18950.0 +154,-1.0,95.0,109.0999984741211,188.8000030517578,68.9000015258789,55.5,2952.0,141.0,3.7799999713897705,3.150000095367432,9.5,114.0,5400.0,23.0,28.0,16845.0 +155,-1.0,95.0,109.0999984741211,188.8000030517578,68.80000305175781,55.5,3049.0,141.0,3.7799999713897705,3.150000095367432,8.699999809265137,160.0,5300.0,19.0,25.0,19045.0 +156,-1.0,95.0,109.0999984741211,188.8000030517578,68.9000015258789,55.5,3012.0,173.0,3.5799999237060547,2.869999885559082,8.800000190734863,134.0,5500.0,18.0,23.0,21485.0 +157,-1.0,95.0,109.0999984741211,188.8000030517578,68.9000015258789,55.5,3217.0,145.0,3.009999990463257,3.400000095367432,23.0,106.0,4800.0,26.0,27.0,22470.0 +158,-1.0,95.0,109.0999984741211,188.8000030517578,68.9000015258789,55.5,3062.0,141.0,3.7799999713897705,3.150000095367432,9.5,114.0,5400.0,19.0,25.0,22625.0 diff --git a/data/benchmark/new_thyroid.csv b/data/benchmark/new_thyroid.csv new file mode 100644 index 0000000..2c6a086 --- /dev/null +++ b/data/benchmark/new_thyroid.csv @@ -0,0 +1,216 @@ +,2,3,4,5,6,target +0,107.0,10.1,2.2,0.9,2.7,1 +1,113.0,9.9,3.1,2.0,5.9,1 +2,127.0,12.9,2.4,1.4,0.6,1 +3,109.0,5.3,1.6,1.4,1.5,1 +4,105.0,7.3,1.5,1.5,-0.1,1 +5,105.0,6.1,2.1,1.4,7.0,1 +6,110.0,10.4,1.6,1.6,2.7,1 +7,114.0,9.9,2.4,1.5,5.7,1 +8,106.0,9.4,2.2,1.5,0.0,1 +9,107.0,13.0,1.1,0.9,3.1,1 +10,106.0,4.2,1.2,1.6,1.4,1 +11,110.0,11.3,2.3,0.9,3.3,1 +12,116.0,9.2,2.7,1.0,4.2,1 +13,112.0,8.1,1.9,3.7,2.0,1 +14,122.0,9.7,1.6,0.9,2.2,1 +15,109.0,8.4,2.1,1.1,3.6,1 +16,111.0,8.4,1.5,0.8,1.2,1 +17,114.0,6.7,1.5,1.0,3.5,1 +18,119.0,10.6,2.1,1.3,1.1,1 +19,115.0,7.1,1.3,1.3,2.0,1 +20,101.0,7.8,1.2,1.0,1.7,1 +21,103.0,10.1,1.3,0.7,0.1,1 +22,109.0,10.4,1.9,0.4,-0.1,1 +23,102.0,7.6,1.8,2.0,2.5,1 +24,121.0,10.1,1.7,1.3,0.1,1 +25,100.0,6.1,2.4,1.8,3.8,1 +26,106.0,9.6,2.4,1.0,1.3,1 +27,116.0,10.1,2.2,1.6,0.8,1 +28,105.0,11.1,2.0,1.0,1.0,1 +29,110.0,10.4,1.8,1.0,2.3,1 +30,120.0,8.4,1.1,1.4,1.4,1 +31,116.0,11.1,2.0,1.2,2.3,1 +32,110.0,7.8,1.9,2.1,6.4,1 +33,90.0,8.1,1.6,1.4,1.1,1 +34,117.0,12.2,1.9,1.2,3.9,1 +35,117.0,11.0,1.4,1.5,2.1,1 +36,113.0,9.0,2.0,1.8,1.6,1 +37,106.0,9.4,1.5,0.8,0.5,1 +38,130.0,9.5,1.7,0.4,3.2,1 +39,100.0,10.5,2.4,0.9,1.9,1 +40,121.0,10.1,2.4,0.8,3.0,1 +41,110.0,9.2,1.6,1.5,0.3,1 +42,129.0,11.9,2.7,1.2,3.5,1 +43,121.0,13.5,1.5,1.6,0.5,1 +44,123.0,8.1,2.3,1.0,5.1,1 +45,107.0,8.4,1.8,1.5,0.8,1 +46,109.0,10.0,1.3,1.8,4.3,1 +47,120.0,6.8,1.9,1.3,1.9,1 +48,100.0,9.5,2.5,1.3,-0.2,1 +49,118.0,8.1,1.9,1.5,13.7,1 +50,100.0,11.3,2.5,0.7,-0.3,1 +51,103.0,12.2,1.2,1.3,2.7,1 +52,115.0,8.1,1.7,0.6,2.2,1 +53,119.0,8.0,2.0,0.6,3.2,1 +54,106.0,9.4,1.7,0.9,3.1,1 +55,114.0,10.9,2.1,0.3,1.4,1 +56,93.0,8.9,1.5,0.8,2.7,1 +57,120.0,10.4,2.1,1.1,1.8,1 +58,106.0,11.3,1.8,0.9,1.0,1 +59,110.0,8.7,1.9,1.6,4.4,1 +60,103.0,8.1,1.4,0.5,3.8,1 +61,101.0,7.1,2.2,0.8,2.2,1 +62,115.0,10.4,1.8,1.6,2.0,1 +63,116.0,10.0,1.7,1.5,4.3,1 +64,117.0,9.2,1.9,1.5,6.8,1 +65,106.0,6.7,1.5,1.2,3.9,1 +66,118.0,10.5,2.1,0.7,3.5,1 +67,97.0,7.8,1.3,1.2,0.9,1 +68,113.0,11.1,1.7,0.8,2.3,1 +69,104.0,6.3,2.0,1.2,4.0,1 +70,96.0,9.4,1.5,1.0,3.1,1 +71,120.0,12.4,2.4,0.8,1.9,1 +72,133.0,9.7,2.9,0.8,1.9,1 +73,126.0,9.4,2.3,1.0,4.0,1 +74,113.0,8.5,1.8,0.8,0.5,1 +75,109.0,9.7,1.4,1.1,2.1,1 +76,119.0,12.9,1.5,1.3,3.6,1 +77,101.0,7.1,1.6,1.5,1.6,1 +78,108.0,10.4,2.1,1.3,2.4,1 +79,117.0,6.7,2.2,1.8,6.7,1 +80,115.0,15.3,2.3,2.0,2.0,1 +81,91.0,8.0,1.7,2.1,4.6,1 +82,103.0,8.5,1.8,1.9,1.1,1 +83,98.0,9.1,1.4,1.9,-0.3,1 +84,111.0,7.8,2.0,1.8,4.1,1 +85,107.0,13.0,1.5,2.8,1.7,1 +86,119.0,11.4,2.3,2.2,1.6,1 +87,122.0,11.8,2.7,1.7,2.3,1 +88,105.0,8.1,2.0,1.9,-0.5,1 +89,109.0,7.6,1.3,2.2,1.9,1 +90,105.0,9.5,1.8,1.6,3.6,1 +91,112.0,5.9,1.7,2.0,1.3,1 +92,112.0,9.5,2.0,1.2,0.7,1 +93,98.0,8.6,1.6,1.6,6.0,1 +94,109.0,12.4,2.3,1.7,0.8,1 +95,114.0,9.1,2.6,1.5,1.5,1 +96,114.0,11.1,2.4,2.0,-0.3,1 +97,110.0,8.4,1.4,1.0,1.9,1 +98,120.0,7.1,1.2,1.5,4.3,1 +99,108.0,10.9,1.2,1.9,1.0,1 +100,108.0,8.7,1.2,2.2,2.5,1 +101,116.0,11.9,1.8,1.9,1.5,1 +102,113.0,11.5,1.5,1.9,2.9,1 +103,105.0,7.0,1.5,2.7,4.3,1 +104,114.0,8.4,1.6,1.6,-0.2,1 +105,114.0,8.1,1.6,1.6,0.5,1 +106,105.0,11.1,1.1,0.8,1.2,1 +107,107.0,13.8,1.5,1.0,1.9,1 +108,116.0,11.5,1.8,1.4,5.4,1 +109,102.0,9.5,1.4,1.1,1.6,1 +110,116.0,16.1,0.9,1.3,1.5,1 +111,118.0,10.6,1.8,1.4,3.0,1 +112,109.0,8.9,1.7,1.0,0.9,1 +113,110.0,7.0,1.0,1.6,4.3,1 +114,104.0,9.6,1.1,1.3,0.8,1 +115,105.0,8.7,1.5,1.1,1.5,1 +116,102.0,8.5,1.2,1.3,1.4,1 +117,112.0,6.8,1.7,1.4,3.3,1 +118,111.0,8.5,1.6,1.1,3.9,1 +119,111.0,8.5,1.6,1.2,7.7,1 +120,103.0,7.3,1.0,0.7,0.5,1 +121,98.0,10.4,1.6,2.3,-0.7,1 +122,117.0,7.8,2.0,1.0,3.9,1 +123,111.0,9.1,1.7,1.2,4.1,1 +124,101.0,6.3,1.5,0.9,2.9,1 +125,106.0,8.9,0.7,1.0,2.3,1 +126,102.0,8.4,1.5,0.8,2.4,1 +127,115.0,10.6,0.8,2.1,4.6,1 +128,130.0,10.0,1.6,0.9,4.6,1 +129,101.0,6.7,1.3,1.0,5.7,1 +130,110.0,6.3,1.0,0.8,1.0,1 +131,103.0,9.5,2.9,1.4,-0.1,1 +132,113.0,7.8,2.0,1.1,3.0,1 +133,112.0,10.6,1.6,0.9,-0.1,1 +134,118.0,6.5,1.2,1.2,1.7,1 +135,109.0,9.2,1.8,1.1,4.4,1 +136,116.0,7.8,1.4,1.1,3.7,1 +137,127.0,7.7,1.8,1.9,6.4,1 +138,108.0,6.5,1.0,0.9,1.5,1 +139,108.0,7.1,1.3,1.6,2.2,1 +140,105.0,5.7,1.0,0.9,0.9,1 +141,98.0,5.7,0.4,1.3,2.8,1 +142,112.0,6.5,1.2,1.2,2.0,1 +143,118.0,12.2,1.5,1.0,2.3,1 +144,94.0,7.5,1.2,1.3,4.4,1 +145,126.0,10.4,1.7,1.2,3.5,1 +146,114.0,7.5,1.1,1.6,4.4,1 +147,111.0,11.9,2.3,0.9,3.8,1 +148,104.0,6.1,1.8,0.5,0.8,1 +149,102.0,6.6,1.2,1.4,1.3,1 +150,139.0,16.4,3.8,1.1,-0.2,2 +151,111.0,16.0,2.1,0.9,-0.1,2 +152,113.0,17.2,1.8,1.0,0.0,2 +153,65.0,25.3,5.8,1.3,0.2,2 +154,88.0,24.1,5.5,0.8,0.1,2 +155,65.0,18.2,10.0,1.3,0.1,2 +156,134.0,16.4,4.8,0.6,0.1,2 +157,110.0,20.3,3.7,0.6,0.2,2 +158,67.0,23.3,7.4,1.8,-0.6,2 +159,95.0,11.1,2.7,1.6,-0.3,2 +160,89.0,14.3,4.1,0.5,0.2,2 +161,89.0,23.8,5.4,0.5,0.1,2 +162,88.0,12.9,2.7,0.1,0.2,2 +163,105.0,17.4,1.6,0.3,0.4,2 +164,89.0,20.1,7.3,1.1,-0.2,2 +165,99.0,13.0,3.6,0.7,-0.1,2 +166,80.0,23.0,10.0,0.9,-0.1,2 +167,89.0,21.8,7.1,0.7,-0.1,2 +168,99.0,13.0,3.1,0.5,-0.1,2 +169,68.0,14.7,7.8,0.6,-0.2,2 +170,97.0,14.2,3.6,1.5,0.3,2 +171,84.0,21.5,2.7,1.1,-0.6,2 +172,84.0,18.5,4.4,1.1,-0.3,2 +173,98.0,16.7,4.3,1.7,0.2,2 +174,94.0,20.5,1.8,1.4,-0.5,2 +175,99.0,17.5,1.9,1.4,0.3,2 +176,76.0,25.3,4.5,1.2,-0.1,2 +177,110.0,15.2,1.9,0.7,-0.2,2 +178,144.0,22.3,3.3,1.3,0.6,2 +179,105.0,12.0,3.3,1.1,0.0,2 +180,88.0,16.5,4.9,0.8,0.1,2 +181,97.0,15.1,1.8,1.2,-0.2,2 +182,106.0,13.4,3.0,1.1,0.0,2 +183,79.0,19.0,5.5,0.9,0.3,2 +184,92.0,11.1,2.0,0.7,-0.2,2 +185,125.0,2.3,0.9,16.5,9.5,3 +186,120.0,6.8,2.1,10.4,38.6,3 +187,108.0,3.5,0.6,1.7,1.4,3 +188,120.0,3.0,2.5,1.2,4.5,3 +189,119.0,3.8,1.1,23.0,5.7,3 +190,141.0,5.6,1.8,9.2,14.4,3 +191,129.0,1.5,0.6,12.5,2.9,3 +192,118.0,3.6,1.5,11.6,48.8,3 +193,120.0,1.9,0.7,18.5,24.0,3 +194,119.0,0.8,0.7,56.4,21.6,3 +195,123.0,5.6,1.1,13.7,56.3,3 +196,115.0,6.3,1.2,4.7,14.4,3 +197,126.0,0.5,0.2,12.2,8.8,3 +198,121.0,4.7,1.8,11.2,53.0,3 +199,131.0,2.7,0.8,9.9,4.7,3 +200,134.0,2.0,0.5,12.2,2.2,3 +201,141.0,2.5,1.3,8.5,7.5,3 +202,113.0,5.1,0.7,5.8,19.6,3 +203,136.0,1.4,0.3,32.6,8.4,3 +204,120.0,3.4,1.8,7.5,21.5,3 +205,125.0,3.7,1.1,8.5,25.9,3 +206,123.0,1.9,0.3,22.8,22.2,3 +207,112.0,2.6,0.7,41.0,19.0,3 +208,134.0,1.9,0.6,18.4,8.2,3 +209,119.0,5.1,1.1,7.0,40.8,3 +210,118.0,6.5,1.3,1.7,11.5,3 +211,139.0,4.2,0.7,4.3,6.3,3 +212,103.0,5.1,1.4,1.2,5.0,3 +213,97.0,4.7,1.1,2.1,12.6,3 +214,102.0,5.3,1.4,1.3,6.7,3 diff --git a/tests/test_Integrational.py b/tests/test_Integrational.py new file mode 100644 index 0000000..013da0c --- /dev/null +++ b/tests/test_Integrational.py @@ -0,0 +1,277 @@ +import pytest +import itertools +import bamt.networks as networks +import bamt.preprocessors as pp +from pgmpy.estimators import K2Score +import pandas as pd +import numpy as np +from pandas.testing import assert_frame_equal +from sklearn import preprocessing +from sklearn.model_selection import train_test_split + + +class Builder: + def __init__(self): + self.data_paths = { + "Continuous": "data/benchmark/auto_price.csv", + "Discrete": "tests/hack_discrete/hack_data.csv", + "Hybrid": "data/benchmark/new_thyroid.csv", + } + + self.tail = { + "Continuous": ["Continuous", "target"], + "Discrete": ["Discrete", "Tectonic regime"], + "Hybrid": ["Hybrid", "target"], + } + + self.scoring = [("K2", K2Score), "BIC", "MI"] + self.optimizer = ["HC"] + self.use_mixture = [False, True] + self.has_logit = [False, True] + + self.static = {} + + self.dynamic = { + "Continuous": [self.use_mixture, [False], self.optimizer, self.scoring], + "Discrete": [[False], [False], self.optimizer, self.scoring], + "Hybrid": [self.use_mixture, self.has_logit, self.optimizer, self.scoring], + } + + def create_from_config(self): + """Method to collect data from config""" + self.static = dict( + Discrete=[self.data_paths["Discrete"], *self.tail["Discrete"]], + Continuous=[self.data_paths["Continuous"], *self.tail["Continuous"]], + Hybrid=[self.data_paths["Hybrid"], *self.tail["Hybrid"]], + evo=[False, False, "Evo", self.scoring[0]], + ) + + def create_evo_item(self, net_type): + evo_item = self.static["evo"][:] + evo_item.insert(0, self.data_paths[net_type]) + evo_item.extend(self.tail[net_type]) + return evo_item + + @staticmethod + def insert_list(loc, what, to): + new = to[:] + new[loc:loc] = what + return new + + def create_net_items(self, net_type): + static = self.static[net_type][:] + dynamic_part = map(list, itertools.product(*self.dynamic[net_type])) + return list(map(lambda x: self.insert_list(1, x, static), dynamic_part)) + + def get_params(self): + self.create_from_config() + params = [] + for net_type in ["Discrete", "Continuous", "Hybrid"]: + params.extend( + self.create_net_items(net_type) + [self.create_evo_item(net_type)] + ) + return params + + +params = Builder().get_params() + + +def initialize_bn(bn_type, use_mixture, has_logit): + if bn_type == "Discrete": + bn = networks.DiscreteBN() + elif bn_type == "Continuous": + bn = networks.ContinuousBN(use_mixture=use_mixture) + elif bn_type == "Hybrid": + bn = networks.HybridBN(has_logit=has_logit, use_mixture=use_mixture) + elif bn_type == "Composite": + bn = networks.CompositeBN() + return bn + + +def prepare_data(directory): + data = pd.read_csv(directory, index_col=0) + train, test = train_test_split(data, test_size=0.33, random_state=42) + + encoder = preprocessing.LabelEncoder() + discretizer = preprocessing.KBinsDiscretizer( + n_bins=5, encode="ordinal", strategy="quantile" + ) + + p = pp.Preprocessor([("encoder", encoder), ("discretizer", discretizer)]) + discretized_data, est = p.apply(train) + info = p.info + return info, discretized_data, train, test + + +class TestNetwork: + # Checking the equality of predictions (trained and loaded network) before and after saving + @pytest.mark.parametrize( + "directory, use_mixture, has_logit, optimizer, scoring, bn_type, target", params + ) + def test_1( + self, directory, use_mixture, has_logit, optimizer, scoring, bn_type, target + ): + test_id = "test_1" + + bn = initialize_bn(bn_type, use_mixture, has_logit) + info, discretized_data, train, test = prepare_data(directory) + bn.add_nodes(info) + if bn_type != "Composite": + bn.add_edges( + discretized_data, + optimizer=optimizer, + scoring_function=scoring, + progress_bar=False, + ) + else: + bn.add_edges(train) + + bn.fit_parameters(train) + predict = bn.predict( + test[[x for x in test.columns if x != target]], progress_bar=False + ) + bn.save("bn") + + bn = initialize_bn(bn_type, use_mixture, has_logit) + bn.load("bn.json") + predict_loaded = bn.predict( + test[[x for x in test.columns if x != target]], progress_bar=False + ) + + try: + assert_frame_equal(pd.DataFrame(predict), pd.DataFrame(predict_loaded)) + print(f"{test_id} runned successfully") + except AssertionError: + print( + f"params: {dict(zip(['use_mixture', 'has_logit', 'optimizer', 'scoring', 'bn_type'], use_mixture, has_logit, optimizer, scoring, bn_type))}" + ) + raise + + # Checking the prediction algorithm (trained network) before and after saving + @pytest.mark.parametrize( + "directory, use_mixture, has_logit, optimizer, scoring, bn_type, target", params + ) + def test_2( + self, directory, use_mixture, has_logit, optimizer, scoring, bn_type, target + ): + test_id = "test_2" + + bn = initialize_bn(bn_type, use_mixture, has_logit) + info, discretized_data, train, test = prepare_data(directory) + bn.add_nodes(info) + if bn_type != "Composite": + bn.add_edges( + discretized_data, + optimizer=optimizer, + scoring_function=scoring, + progress_bar=False, + ) + else: + bn.add_edges(train) + + bn.fit_parameters(train) + predict = bn.predict( + test[[x for x in test.columns if x != target]], progress_bar=False + ) + bn.save("bn") + + predict2 = bn.predict( + test[[x for x in test.columns if x != target]], progress_bar=False + ) + + try: + assert_frame_equal(pd.DataFrame(predict), pd.DataFrame(predict2)) + print(f"{test_id} runned successfully") + except AssertionError: + print( + f"params: {dict(zip(['use_mixture', 'has_logit', 'optimizer', 'scoring', 'bn_type'], use_mixture, has_logit, optimizer, scoring, bn_type))}" + ) + raise + + # Checking network predictions without edges + @pytest.mark.parametrize( + "directory, use_mixture, has_logit, optimizer, scoring, bn_type, target", params + ) + def test_3( + self, directory, use_mixture, has_logit, optimizer, scoring, bn_type, target + ): + test_id = "test_3" + + bn = initialize_bn(bn_type, use_mixture, has_logit) + info, discretized_data, train, test = prepare_data(directory) + bn.add_nodes(info) + bn.fit_parameters(train) + + predict = bn.predict( + test[[x for x in test.columns if x != target]], progress_bar=False + ) + + try: + if info["types"][target] == "cont": + if use_mixture: + mean = bn.distributions[target]["mean"] + w = bn.distributions[target]["coef"] + sample = 0 + for ind, wi in enumerate(w): + sample += wi * mean[ind][0] + else: + sample = train[target].mean() + + assert np.all(np.array(predict[target]) == sample) + + elif info["types"][target] == "disc_num": + most_frequent = train[target].value_counts().index[0] + assert np.all(np.array(predict[target]) == most_frequent) + + print(f"{test_id} runned successfully") + except AssertionError: + print( + f"params: {dict(zip(['use_mixture', 'has_logit', 'optimizer', 'scoring', 'bn_type'], use_mixture, has_logit, optimizer, scoring, bn_type))}" + ) + raise + + # Checking the network trained on the 1 sample + @pytest.mark.parametrize( + "directory, use_mixture, has_logit, optimizer, scoring, bn_type, target", params + ) + def test_4( + self, directory, use_mixture, has_logit, optimizer, scoring, bn_type, target + ): + test_id = "test_4" + + if use_mixture == False: + + bn = initialize_bn(bn_type, use_mixture, has_logit) + info, discretized_data, train, test = prepare_data(directory) + + bn.add_nodes(info) + + train_data_1 = pd.DataFrame(train.iloc[0].to_dict(), index=[0]) + disc_data_1 = pd.DataFrame(discretized_data.iloc[0].to_dict(), index=[0]) + + if bn_type != "Composite": + bn.add_edges( + disc_data_1, + optimizer=optimizer, + scoring_function=scoring, + progress_bar=False, + ) + else: + bn.add_edges(train_data_1) + + bn.fit_parameters(train_data_1) + + predict = bn.predict( + test[[x for x in test.columns if x != target]], progress_bar=False + ) + + try: + assert np.all(np.array(predict[target]) == train_data_1[target][0]) + print(f"{test_id} runned successfully") + except AssertionError: + print( + f"params: {dict(zip(['use_mixture', 'has_logit', 'optimizer', 'scoring', 'bn_type'], use_mixture, has_logit, optimizer, scoring, bn_type))}" + ) + raise + else: + pass