@@ -1167,7 +1167,9 @@ def _no_targets_no_thresholds(
1167
1167
f"{ '' :4} if input_array.shape[0] == 1:\n "
1168
1168
f"{ '' :8} { metrics } = prediction[1][0]\n { '' :8} return { metrics } \n "
1169
1169
f"{ '' :4} else:\n "
1170
- f"{ '' :8} return prediction.iloc[:, 0]\n "
1170
+ f"{ '' :8} output_table = prediction.drop(prediction.columns[1:], axis=1)\n "
1171
+ f"{ '' :8} output_table.columns = ['{ metrics } ']\n "
1172
+ f"{ '' :8} return output_table"
1171
1173
)
1172
1174
"""
1173
1175
if input_array.shape[0] == 1:
@@ -1296,8 +1298,7 @@ def _binary_target(
1296
1298
f"{ '' :8} return { metrics } \n "
1297
1299
f"{ '' :4} else:\n "
1298
1300
f"{ '' :8} target_values = { target_values } \n "
1299
- f"{ '' :8} df = pd.DataFrame(prediction[1:], columns=prediction[0])\n "
1300
- f"{ '' :8} output_table = pd.DataFrame({{'{ metrics } ' : np.array(target_values)[np.argmax(df.iloc[0:, 1:].values, axis=1)]}})\n "
1301
+ f"{ '' :8} output_table = pd.DataFrame({{'{ metrics } ': np.array(target_values)[np.argmax(prediction.iloc[0:, 1:].values, axis=1)]}})\n "
1301
1302
f"{ '' :8} return output_table"
1302
1303
)
1303
1304
"""
@@ -1399,6 +1400,7 @@ def _binary_target(
1399
1400
else :
1400
1401
cls ._invalid_predict_config ()
1401
1402
elif len (metrics ) == 2 :
1403
+ # TODO: change to align with other cases and assign target_values to classification column
1402
1404
# H2O models with two metrics are assumed to be classification + probability
1403
1405
if h2o_model :
1404
1406
warn (
@@ -1410,8 +1412,9 @@ def _binary_target(
1410
1412
f"{ '' :4} if input_array.shape[0] == 1:\n "
1411
1413
f"{ '' :8} return prediction[1][0], float(prediction[1][2])\n "
1412
1414
f"{ '' :4} else:\n "
1413
- f"{ '' :8} output_table = pd.DataFrame(prediction[1:], columns={ metrics } )\n "
1414
- f"{ '' :8} return output_table.drop('drop', axis=1)"
1415
+ f"{ '' :8} output_table = prediction.drop(prediction.columns[1], axis=1)\n "
1416
+ f"{ '' :8} output_table.columns = { metrics } \n "
1417
+ f"{ '' :8} return output_table"
1415
1418
)
1416
1419
"""
1417
1420
if input_array.shape[0] == 1:
@@ -1464,9 +1467,9 @@ def _binary_target(
1464
1467
f"{ '' :12} { metrics [0 ]} = \" { target_values [1 ]} \" \n "
1465
1468
f"{ '' :8} return { metrics [0 ]} , prediction[0]\n "
1466
1469
f"{ '' :4} else:\n "
1467
- f"{ '' :8} df = pd.DataFrame(prediction, columns = { target_values } )\n "
1468
- f"{ '' :8} proba = df[:, 0]\n "
1469
- f"{ '' :8} classification = np.where(df[:, 0] > df[:, 1], '{ target_values [0 ]} ', '{ target_values [1 ]} ')\n "
1470
+ f"{ '' :8} df = pd.DataFrame(prediction)\n "
1471
+ f"{ '' :8} proba = df[0]\n "
1472
+ f"{ '' :8} classifications = np.where(df[0] > df[1], '{ target_values [0 ]} ', '{ target_values [1 ]} ')\n "
1470
1473
f"{ '' :8} return pd.DataFrame({{'{ metrics [0 ]} ': classifications, '{ metrics [1 ]} ': proba}})"
1471
1474
)
1472
1475
"""
@@ -1526,6 +1529,7 @@ def _binary_target(
1526
1529
f"{ '' :8} return prediction[{ class_index } ], prediction[0]\n "
1527
1530
f"{ '' :4} else:\n "
1528
1531
f"{ '' :8} output_table = pd.DataFrame(prediction, columns=[{ metric_list } ])\n "
1532
+ f"{ '' :8} output_table = output_table[output_table.columns[::-1]]\n "
1529
1533
f"{ '' :8} return output_table.drop('drop', axis=1)" )
1530
1534
"""
1531
1535
if input_array.shape[0] == 1:
@@ -1543,7 +1547,8 @@ def _binary_target(
1543
1547
f"{ '' :8} return prediction[1][0], float(prediction[1][1]), "
1544
1548
f"float(prediction[1][2])\n "
1545
1549
f"{ '' :4} else:\n "
1546
- f"{ '' :8} return pd.DataFrame(prediction[1:], columns={ metrics } )"
1550
+ f"{ '' :8} prediction.columns = { metrics } \n "
1551
+ f"{ '' :8} return prediction"
1547
1552
)
1548
1553
"""
1549
1554
if input_array.shape[0] == 1:
@@ -1599,7 +1604,7 @@ def _binary_target(
1599
1604
f"{ '' :8} return { metrics [0 ]} , prediction[0], prediction[1]\n "
1600
1605
f"{ '' :4} else:\n "
1601
1606
f"{ '' :8} output_table = pd.DataFrame(prediction, columns=[{ metric_list } ])\n "
1602
- f"{ '' :8} output_table = output_table .insert(0, '{ metrics [0 ]} ', np.array(target_values)[np.argmax(output_table.iloc[0:, 0:] .values, axis=1)])\n "
1607
+ f"{ '' :8} output_table.insert(0, '{ metrics [0 ]} ', np.array({ target_values } )[np.argmax(output_table.values, axis=1)])\n "
1603
1608
f"{ '' :8} return output_table"
1604
1609
)
1605
1610
"""
@@ -1643,7 +1648,8 @@ def _binary_target(
1643
1648
f"{ '' :8} return prediction[1], prediction[0], 1 - prediction[0]\n "
1644
1649
f"{ '' :4} else:\n "
1645
1650
f"{ '' :8} output_table = pd.DataFrame(prediction, columns=[{ metric_list } ])\n "
1646
- f"{ '' :8} output_table['{ metrics [2 ]} '] = 1 - output_table['{ metrics [0 ]} ']\n "
1651
+ f"{ '' :8} output_table = output_table[output_table.columns[::-1]]\n "
1652
+ f"{ '' :8} output_table['{ metrics [2 ]} '] = 1 - output_table['{ metrics [1 ]} ']\n "
1647
1653
f"{ '' :8} return output_table"
1648
1654
)
1649
1655
"""
@@ -1660,7 +1666,7 @@ def _binary_target(
1660
1666
f"{ '' :4} if input_array.shape[0] == 1:\n "
1661
1667
f"{ '' :8} return prediction[0], prediction[1], prediction[2]\n "
1662
1668
f"{ '' :4} else:\n "
1663
- f"{ '' :8} output_table = pd.DataFrame(prediction, columns={ metrics } )"
1669
+ f"{ '' :8} return pd.DataFrame(prediction, columns={ metrics } )"
1664
1670
)
1665
1671
"""
1666
1672
if input_array.shape[0] == 1:
@@ -1715,7 +1721,7 @@ def _nonbinary_targets(
1715
1721
f"index(max(prediction[1][1:]))]\n "
1716
1722
f"{ '' :8} return { metrics } \n "
1717
1723
f"{ '' :4} else:\n "
1718
- f"{ '' :8} output_table = pd.DataFrame({{'{ metrics } ': np.array(target_values)[np.argmax(df .iloc[1 :, 0 :].values, axis=1)]}})\n "
1724
+ f"{ '' :8} output_table = pd.DataFrame({{'{ metrics } ': np.array(target_values)[np.argmax(prediction .iloc[:, 1 :].values, axis=1)]}})\n "
1719
1725
f"{ '' :8} return output_table"
1720
1726
)
1721
1727
"""
@@ -1724,17 +1730,16 @@ def _nonbinary_targets(
1724
1730
classification_variable = target_values[prediction[1][1:].index(max(prediction[1][1:]))]
1725
1731
return classification_variable
1726
1732
else:
1727
- output_table = pd.DataFrame({'classification_variable': np.array(target_values)[np.argmax(df.iloc[1 :, 0 :].values, axis=1)]})
1733
+ output_table = pd.DataFrame({'classification_variable': np.array(target_values)[np.argmax(df.iloc[:, 1 :].values, axis=1)]})
1728
1734
return output_table
1729
1735
"""
1730
1736
# One return that is the classification
1731
1737
elif len (returns ) == 1 :
1732
1738
cls .score_code += (
1733
1739
f"{ '' :4} if input_array.shape[0] == 1:\n "
1734
- f"{ '' :8} { metrics } = prediction\n "
1735
- f"{ '' :8} return { metrics } \n "
1740
+ f"{ '' :8} return prediction\n "
1736
1741
f"{ '' :4} else:\n "
1737
- f"{ '' :8} return pd.DataFrame('{ metrics } ': prediction)"
1742
+ f"{ '' :8} return pd.DataFrame({{ '{ metrics } ': prediction}} )"
1738
1743
)
1739
1744
"""
1740
1745
if input_array.shape[0] == 1:
@@ -1749,7 +1754,7 @@ def _nonbinary_targets(
1749
1754
f"{ '' :8} target_values = { target_values } \n "
1750
1755
f"{ '' :8} return target_values[prediction.index(max(prediction))]\n "
1751
1756
f"{ '' :4} else:\n "
1752
- f"{ '' :8} output_table = pd.DataFrame({{'{ metrics } ' : np.array(target_values)[np.argmax(prediction, axis=1)]}})\n "
1757
+ f"{ '' :8} output_table = pd.DataFrame({{'{ metrics } ' : np.array({ target_values } )[np.argmax(prediction, axis=1)]}})\n "
1753
1758
f"{ '' :8} return output_table"
1754
1759
)
1755
1760
"""
@@ -1767,7 +1772,7 @@ def _nonbinary_targets(
1767
1772
f"{ '' :4} if input_array.shape[0] == 1:\n "
1768
1773
f"{ '' :8} return prediction[{ class_index } ]\n "
1769
1774
f"{ '' :4} else:\n "
1770
- f"{ '' :8} return pd.DataFrame('{ metrics } ': [p[{ class_index } ] for p in prediction])"
1775
+ f"{ '' :8} return pd.DataFrame({{ '{ metrics } ': [p[{ class_index } ] for p in prediction]}} )"
1771
1776
)
1772
1777
"""
1773
1778
if input_array.shape[0] == 1:
@@ -1786,9 +1791,8 @@ def _nonbinary_targets(
1786
1791
f"index(max(prediction[1][1:]))]\n "
1787
1792
f"{ '' :8} return { metrics [0 ]} , max(prediction[1][1:])\n "
1788
1793
f"{ '' :4} else:\n "
1789
- f"{ '' :8} df = pd.DataFrame(prediction[1:], columns=prediction[0])\n "
1790
- f"{ '' :8} index = np.argmax(df.iloc[0:, 1:].values, axis=1)\n "
1791
- f"{ '' :8} return pd.DataFrame({{'{ metrics [0 ]} ': np.array(target_values)[index], '{ metrics [1 ]} ': np.max(df.iloc[0:, 1:], axis=1)}})\n "
1794
+ f"{ '' :8} index = np.argmax(prediction.iloc[0:, 1:].values, axis=1)\n "
1795
+ f"{ '' :8} return pd.DataFrame({{'{ metrics [0 ]} ': np.array(target_values)[index], '{ metrics [1 ]} ': np.max(prediction.iloc[0:, 1:], axis=1)}})\n "
1792
1796
)
1793
1797
"""
1794
1798
target_values = [1, 2, 3]
@@ -1808,10 +1812,10 @@ def _nonbinary_targets(
1808
1812
f"{ '' :8} return target_values[prediction.index(max(prediction))], "
1809
1813
f"max(prediction)\n "
1810
1814
f"{ '' :4} else:\n "
1811
- f"{ '' :8} df = pd.DataFrame(prediction, columns = target_values )\n "
1812
- f"{ '' :8} index = np.argmax(df, axis=1)\n "
1813
- f"{ '' :8} classifications = [ np.array(target_values)[index] ]\n "
1814
- f"{ '' :8} max_proba = np.max(df, axis=1)\n "
1815
+ f"{ '' :8} df = pd.DataFrame(prediction)\n "
1816
+ f"{ '' :8} index = np.argmax(df.values , axis=1)\n "
1817
+ f"{ '' :8} classifications = np.array(target_values)[index]\n "
1818
+ f"{ '' :8} max_proba = np.max(df.values , axis=1)\n "
1815
1819
f"{ '' :8} return pd.DataFrame({{'{ metrics [0 ]} ': classifications, '{ metrics [1 ]} ': max_proba}})"
1816
1820
)
1817
1821
"""
@@ -1835,7 +1839,7 @@ def _nonbinary_targets(
1835
1839
f"{ '' :4} else:\n "
1836
1840
f"{ '' :8} df = pd.DataFrame(prediction)\n "
1837
1841
f"{ '' :8} probas = df.drop({ class_index } , axis=1)\n "
1838
- f"{ '' :8} max_proba = np.max(probas, axis=1)\n "
1842
+ f"{ '' :8} max_proba = np.max(probas.values , axis=1)\n "
1839
1843
f"{ '' :8} return pd.DataFrame({{'{ metrics [0 ]} ': df[{ class_index } ], '{ metrics [1 ]} ': max_proba}})"
1840
1844
)
1841
1845
"""
@@ -1857,8 +1861,8 @@ def _nonbinary_targets(
1857
1861
f"{ '' :4} if input_array.shape[0] == 1:\n "
1858
1862
f"{ '' :8} return { ', ' .join (h2o_returns )} \n "
1859
1863
f"{ '' :4} else:\n "
1860
- f"{ '' :8} output_table = pd.DataFrame (prediction[1: ], columns= { metrics } )\n "
1861
- f"{ '' :8} output_table = output_table.drop(' { metrics [ 0 ] } ', axis=1)] \n "
1864
+ f"{ '' :8} output_table = prediction.drop (prediction.columns[0 ], axis=1 )\n "
1865
+ f"{ '' :8} output_table.columns = { metrics } \n "
1862
1866
f"{ '' :8} return output_table"
1863
1867
)
1864
1868
"""
@@ -1875,7 +1879,8 @@ def _nonbinary_targets(
1875
1879
f"{ '' :4} if input_array.shape[0] == 1:\n "
1876
1880
f"{ '' :8} return { ', ' .join (h2o_returns )} \n "
1877
1881
f"{ '' :4} else:\n "
1878
- f"{ '' :8} output_table = pd.DataFrame(prediction[1:], columns={ metrics } )"
1882
+ f"{ '' :8} prediction.columns = { metrics } \n "
1883
+ f"{ '' :8} return prediction"
1879
1884
)
1880
1885
"""
1881
1886
if input_array.shape[0] == 1:
@@ -1894,7 +1899,8 @@ def _nonbinary_targets(
1894
1899
f"{ '' :4} if input_array.shape[0] == 1:\n "
1895
1900
f"{ '' :8} return { ', ' .join (proba_returns )} \n "
1896
1901
f"{ '' :4} else:\n "
1897
- f"{ '' :8} output_table = pd.DataFrame(prediction, columns={ metrics } )"
1902
+ f"{ '' :8} output_table = pd.DataFrame(prediction, columns={ metrics } )\n "
1903
+ f"{ '' :8} return output_table"
1898
1904
)
1899
1905
"""
1900
1906
if input_array.shape[0] == 1:
@@ -1912,9 +1918,9 @@ def _nonbinary_targets(
1912
1918
f"{ '' :8} return target_values[prediction.index(max(prediction))], "
1913
1919
f"{ ', ' .join (proba_returns )} \n "
1914
1920
f"{ '' :4} else:\n "
1915
- f"{ '' :8} classifications = [target_values[np.argmax(p)[0]] for p in prediction]\n "
1916
1921
f"{ '' :8} output_table = pd.DataFrame(prediction, columns={ metrics [1 :]} )\n "
1917
- f"{ '' :8} output_table = output_table.insert(loc=0, column={ metrics [0 ]} , data=np.array(target_values)[np.argmax(df.iloc[0:, 1:].values, axis=1)])\n "
1922
+ f"{ '' :8} classifications = np.array(target_values)[np.argmax(output_table.values, axis=1)]\n "
1923
+ f"{ '' :8} output_table.insert(0, '{ metrics [0 ]} ', classifications)\n "
1918
1924
f"{ '' :8} return output_table"
1919
1925
)
1920
1926
"""
0 commit comments