skordinal 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. skordinal-0.0.1/LICENSE +28 -0
  2. skordinal-0.0.1/MANIFEST.in +2 -0
  3. skordinal-0.0.1/PKG-INFO +206 -0
  4. skordinal-0.0.1/README.md +165 -0
  5. skordinal-0.0.1/pyproject.toml +151 -0
  6. skordinal-0.0.1/setup.cfg +4 -0
  7. skordinal-0.0.1/setup.py +5 -0
  8. skordinal-0.0.1/skordinal/__init__.py +4 -0
  9. skordinal-0.0.1/skordinal/classifiers/__init__.py +15 -0
  10. skordinal-0.0.1/skordinal/classifiers/_nnop.py +411 -0
  11. skordinal-0.0.1/skordinal/classifiers/_nnpom.py +527 -0
  12. skordinal-0.0.1/skordinal/classifiers/_ordinal_decomposition.py +523 -0
  13. skordinal-0.0.1/skordinal/classifiers/_redsvm.py +232 -0
  14. skordinal-0.0.1/skordinal/classifiers/_svorex.py +160 -0
  15. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/python/svm-model-python.cpp +435 -0
  16. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/python/svm-model-python.h +11 -0
  17. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/python/svm-module-functions.hpp +4 -0
  18. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/python/svm-module.cpp +47 -0
  19. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/python/svm-predict.cpp +158 -0
  20. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/python/svm-train.cpp +320 -0
  21. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/python/svm.cpp +3606 -0
  22. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/python/svm.h +100 -0
  23. skordinal-0.0.1/skordinal/classifiers/src/libsvmrank/svm.h +100 -0
  24. skordinal-0.0.1/skordinal/classifiers/src/svorex/alphas.c +338 -0
  25. skordinal-0.0.1/skordinal/classifiers/src/svorex/cachelist.c +290 -0
  26. skordinal-0.0.1/skordinal/classifiers/src/svorex/datalist.c +412 -0
  27. skordinal-0.0.1/skordinal/classifiers/src/svorex/def_settings.c +299 -0
  28. skordinal-0.0.1/skordinal/classifiers/src/svorex/loadfile.c +849 -0
  29. skordinal-0.0.1/skordinal/classifiers/src/svorex/ordinal_takestep.c +2651 -0
  30. skordinal-0.0.1/skordinal/classifiers/src/svorex/setandfi.c +332 -0
  31. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo.h +331 -0
  32. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_kernel.c +154 -0
  33. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_loadproblem_python.c +248 -0
  34. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_loadproblem_python.h +25 -0
  35. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_model_python.c +390 -0
  36. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_model_python.h +11 -0
  37. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_routine.c +554 -0
  38. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_routine_python.c +173 -0
  39. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_settings.c +337 -0
  40. skordinal-0.0.1/skordinal/classifiers/src/svorex/smo_timer.c +90 -0
  41. skordinal-0.0.1/skordinal/classifiers/src/svorex/svc_predict.c +398 -0
  42. skordinal-0.0.1/skordinal/classifiers/src/svorex/svorex_module.c +47 -0
  43. skordinal-0.0.1/skordinal/classifiers/src/svorex/svorex_module_functions.h +4 -0
  44. skordinal-0.0.1/skordinal/classifiers/src/svorex/svorex_predict.c +146 -0
  45. skordinal-0.0.1/skordinal/classifiers/src/svorex/svorex_train.c +258 -0
  46. skordinal-0.0.1/skordinal/datasets/__init__.py +25 -0
  47. skordinal-0.0.1/skordinal/datasets/_loaders.py +448 -0
  48. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_0.csv +250 -0
  49. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_1.csv +250 -0
  50. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_10.csv +250 -0
  51. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_11.csv +250 -0
  52. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_12.csv +250 -0
  53. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_13.csv +250 -0
  54. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_14.csv +250 -0
  55. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_15.csv +250 -0
  56. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_16.csv +250 -0
  57. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_17.csv +250 -0
  58. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_18.csv +250 -0
  59. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_19.csv +250 -0
  60. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_2.csv +250 -0
  61. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_20.csv +250 -0
  62. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_21.csv +250 -0
  63. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_22.csv +250 -0
  64. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_23.csv +250 -0
  65. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_24.csv +250 -0
  66. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_25.csv +250 -0
  67. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_26.csv +250 -0
  68. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_27.csv +250 -0
  69. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_28.csv +250 -0
  70. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_29.csv +250 -0
  71. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_3.csv +250 -0
  72. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_4.csv +250 -0
  73. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_5.csv +250 -0
  74. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_6.csv +250 -0
  75. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_7.csv +250 -0
  76. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_8.csv +250 -0
  77. skordinal-0.0.1/skordinal/datasets/data/ERA/test_ERA_9.csv +250 -0
  78. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_0.csv +750 -0
  79. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_1.csv +750 -0
  80. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_10.csv +750 -0
  81. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_11.csv +750 -0
  82. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_12.csv +750 -0
  83. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_13.csv +750 -0
  84. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_14.csv +750 -0
  85. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_15.csv +750 -0
  86. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_16.csv +750 -0
  87. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_17.csv +750 -0
  88. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_18.csv +750 -0
  89. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_19.csv +750 -0
  90. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_2.csv +750 -0
  91. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_20.csv +750 -0
  92. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_21.csv +750 -0
  93. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_22.csv +750 -0
  94. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_23.csv +750 -0
  95. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_24.csv +750 -0
  96. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_25.csv +750 -0
  97. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_26.csv +750 -0
  98. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_27.csv +750 -0
  99. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_28.csv +750 -0
  100. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_29.csv +750 -0
  101. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_3.csv +750 -0
  102. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_4.csv +750 -0
  103. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_5.csv +750 -0
  104. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_6.csv +750 -0
  105. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_7.csv +750 -0
  106. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_8.csv +750 -0
  107. skordinal-0.0.1/skordinal/datasets/data/ERA/train_ERA_9.csv +750 -0
  108. skordinal-0.0.1/skordinal/datasets/data/__init__.py +3 -0
  109. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_0.csv +157 -0
  110. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_1.csv +157 -0
  111. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_10.csv +157 -0
  112. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_11.csv +157 -0
  113. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_12.csv +157 -0
  114. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_13.csv +157 -0
  115. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_14.csv +157 -0
  116. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_15.csv +157 -0
  117. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_16.csv +157 -0
  118. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_17.csv +157 -0
  119. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_18.csv +157 -0
  120. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_19.csv +157 -0
  121. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_2.csv +157 -0
  122. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_20.csv +157 -0
  123. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_21.csv +157 -0
  124. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_22.csv +157 -0
  125. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_23.csv +157 -0
  126. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_24.csv +157 -0
  127. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_25.csv +157 -0
  128. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_26.csv +157 -0
  129. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_27.csv +157 -0
  130. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_28.csv +157 -0
  131. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_29.csv +157 -0
  132. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_3.csv +157 -0
  133. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_4.csv +157 -0
  134. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_5.csv +157 -0
  135. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_6.csv +157 -0
  136. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_7.csv +157 -0
  137. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_8.csv +157 -0
  138. skordinal-0.0.1/skordinal/datasets/data/balance-scale/test_balance-scale_9.csv +157 -0
  139. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_0.csv +468 -0
  140. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_1.csv +468 -0
  141. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_10.csv +468 -0
  142. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_11.csv +468 -0
  143. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_12.csv +468 -0
  144. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_13.csv +468 -0
  145. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_14.csv +468 -0
  146. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_15.csv +468 -0
  147. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_16.csv +468 -0
  148. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_17.csv +468 -0
  149. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_18.csv +468 -0
  150. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_19.csv +468 -0
  151. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_2.csv +468 -0
  152. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_20.csv +468 -0
  153. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_21.csv +468 -0
  154. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_22.csv +468 -0
  155. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_23.csv +468 -0
  156. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_24.csv +468 -0
  157. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_25.csv +468 -0
  158. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_26.csv +468 -0
  159. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_27.csv +468 -0
  160. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_28.csv +468 -0
  161. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_29.csv +468 -0
  162. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_3.csv +468 -0
  163. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_4.csv +468 -0
  164. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_5.csv +468 -0
  165. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_6.csv +468 -0
  166. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_7.csv +468 -0
  167. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_8.csv +468 -0
  168. skordinal-0.0.1/skordinal/datasets/data/balance-scale/train_balance-scale_9.csv +468 -0
  169. skordinal-0.0.1/skordinal/datasets/data/car/test_car_0.csv +432 -0
  170. skordinal-0.0.1/skordinal/datasets/data/car/test_car_1.csv +432 -0
  171. skordinal-0.0.1/skordinal/datasets/data/car/test_car_10.csv +432 -0
  172. skordinal-0.0.1/skordinal/datasets/data/car/test_car_11.csv +432 -0
  173. skordinal-0.0.1/skordinal/datasets/data/car/test_car_12.csv +432 -0
  174. skordinal-0.0.1/skordinal/datasets/data/car/test_car_13.csv +432 -0
  175. skordinal-0.0.1/skordinal/datasets/data/car/test_car_14.csv +432 -0
  176. skordinal-0.0.1/skordinal/datasets/data/car/test_car_15.csv +432 -0
  177. skordinal-0.0.1/skordinal/datasets/data/car/test_car_16.csv +432 -0
  178. skordinal-0.0.1/skordinal/datasets/data/car/test_car_17.csv +432 -0
  179. skordinal-0.0.1/skordinal/datasets/data/car/test_car_18.csv +432 -0
  180. skordinal-0.0.1/skordinal/datasets/data/car/test_car_19.csv +432 -0
  181. skordinal-0.0.1/skordinal/datasets/data/car/test_car_2.csv +432 -0
  182. skordinal-0.0.1/skordinal/datasets/data/car/test_car_20.csv +432 -0
  183. skordinal-0.0.1/skordinal/datasets/data/car/test_car_21.csv +432 -0
  184. skordinal-0.0.1/skordinal/datasets/data/car/test_car_22.csv +432 -0
  185. skordinal-0.0.1/skordinal/datasets/data/car/test_car_23.csv +432 -0
  186. skordinal-0.0.1/skordinal/datasets/data/car/test_car_24.csv +432 -0
  187. skordinal-0.0.1/skordinal/datasets/data/car/test_car_25.csv +432 -0
  188. skordinal-0.0.1/skordinal/datasets/data/car/test_car_26.csv +432 -0
  189. skordinal-0.0.1/skordinal/datasets/data/car/test_car_27.csv +432 -0
  190. skordinal-0.0.1/skordinal/datasets/data/car/test_car_28.csv +432 -0
  191. skordinal-0.0.1/skordinal/datasets/data/car/test_car_29.csv +432 -0
  192. skordinal-0.0.1/skordinal/datasets/data/car/test_car_3.csv +432 -0
  193. skordinal-0.0.1/skordinal/datasets/data/car/test_car_4.csv +432 -0
  194. skordinal-0.0.1/skordinal/datasets/data/car/test_car_5.csv +432 -0
  195. skordinal-0.0.1/skordinal/datasets/data/car/test_car_6.csv +432 -0
  196. skordinal-0.0.1/skordinal/datasets/data/car/test_car_7.csv +432 -0
  197. skordinal-0.0.1/skordinal/datasets/data/car/test_car_8.csv +432 -0
  198. skordinal-0.0.1/skordinal/datasets/data/car/test_car_9.csv +432 -0
  199. skordinal-0.0.1/skordinal/datasets/data/car/train_car_0.csv +1296 -0
  200. skordinal-0.0.1/skordinal/datasets/data/car/train_car_1.csv +1296 -0
  201. skordinal-0.0.1/skordinal/datasets/data/car/train_car_10.csv +1296 -0
  202. skordinal-0.0.1/skordinal/datasets/data/car/train_car_11.csv +1296 -0
  203. skordinal-0.0.1/skordinal/datasets/data/car/train_car_12.csv +1296 -0
  204. skordinal-0.0.1/skordinal/datasets/data/car/train_car_13.csv +1296 -0
  205. skordinal-0.0.1/skordinal/datasets/data/car/train_car_14.csv +1296 -0
  206. skordinal-0.0.1/skordinal/datasets/data/car/train_car_15.csv +1296 -0
  207. skordinal-0.0.1/skordinal/datasets/data/car/train_car_16.csv +1296 -0
  208. skordinal-0.0.1/skordinal/datasets/data/car/train_car_17.csv +1296 -0
  209. skordinal-0.0.1/skordinal/datasets/data/car/train_car_18.csv +1296 -0
  210. skordinal-0.0.1/skordinal/datasets/data/car/train_car_19.csv +1296 -0
  211. skordinal-0.0.1/skordinal/datasets/data/car/train_car_2.csv +1296 -0
  212. skordinal-0.0.1/skordinal/datasets/data/car/train_car_20.csv +1296 -0
  213. skordinal-0.0.1/skordinal/datasets/data/car/train_car_21.csv +1296 -0
  214. skordinal-0.0.1/skordinal/datasets/data/car/train_car_22.csv +1296 -0
  215. skordinal-0.0.1/skordinal/datasets/data/car/train_car_23.csv +1296 -0
  216. skordinal-0.0.1/skordinal/datasets/data/car/train_car_24.csv +1296 -0
  217. skordinal-0.0.1/skordinal/datasets/data/car/train_car_25.csv +1296 -0
  218. skordinal-0.0.1/skordinal/datasets/data/car/train_car_26.csv +1296 -0
  219. skordinal-0.0.1/skordinal/datasets/data/car/train_car_27.csv +1296 -0
  220. skordinal-0.0.1/skordinal/datasets/data/car/train_car_28.csv +1296 -0
  221. skordinal-0.0.1/skordinal/datasets/data/car/train_car_29.csv +1296 -0
  222. skordinal-0.0.1/skordinal/datasets/data/car/train_car_3.csv +1296 -0
  223. skordinal-0.0.1/skordinal/datasets/data/car/train_car_4.csv +1296 -0
  224. skordinal-0.0.1/skordinal/datasets/data/car/train_car_5.csv +1296 -0
  225. skordinal-0.0.1/skordinal/datasets/data/car/train_car_6.csv +1296 -0
  226. skordinal-0.0.1/skordinal/datasets/data/car/train_car_7.csv +1296 -0
  227. skordinal-0.0.1/skordinal/datasets/data/car/train_car_8.csv +1296 -0
  228. skordinal-0.0.1/skordinal/datasets/data/car/train_car_9.csv +1296 -0
  229. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_0.csv +6 -0
  230. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_1.csv +6 -0
  231. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_10.csv +6 -0
  232. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_11.csv +6 -0
  233. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_12.csv +6 -0
  234. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_13.csv +6 -0
  235. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_14.csv +6 -0
  236. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_15.csv +6 -0
  237. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_16.csv +6 -0
  238. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_17.csv +6 -0
  239. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_18.csv +6 -0
  240. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_19.csv +6 -0
  241. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_2.csv +6 -0
  242. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_20.csv +6 -0
  243. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_21.csv +6 -0
  244. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_22.csv +6 -0
  245. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_23.csv +6 -0
  246. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_24.csv +6 -0
  247. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_25.csv +6 -0
  248. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_26.csv +6 -0
  249. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_27.csv +6 -0
  250. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_28.csv +6 -0
  251. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_29.csv +6 -0
  252. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_3.csv +6 -0
  253. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_4.csv +6 -0
  254. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_5.csv +6 -0
  255. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_6.csv +6 -0
  256. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_7.csv +6 -0
  257. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_8.csv +6 -0
  258. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/test_contact-lenses_9.csv +6 -0
  259. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_0.csv +18 -0
  260. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_1.csv +18 -0
  261. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_10.csv +18 -0
  262. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_11.csv +18 -0
  263. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_12.csv +18 -0
  264. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_13.csv +18 -0
  265. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_14.csv +18 -0
  266. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_15.csv +18 -0
  267. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_16.csv +18 -0
  268. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_17.csv +18 -0
  269. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_18.csv +18 -0
  270. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_19.csv +18 -0
  271. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_2.csv +18 -0
  272. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_20.csv +18 -0
  273. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_21.csv +18 -0
  274. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_22.csv +18 -0
  275. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_23.csv +18 -0
  276. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_24.csv +18 -0
  277. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_25.csv +18 -0
  278. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_26.csv +18 -0
  279. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_27.csv +18 -0
  280. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_28.csv +18 -0
  281. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_29.csv +18 -0
  282. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_3.csv +18 -0
  283. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_4.csv +18 -0
  284. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_5.csv +18 -0
  285. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_6.csv +18 -0
  286. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_7.csv +18 -0
  287. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_8.csv +18 -0
  288. skordinal-0.0.1/skordinal/datasets/data/contact-lenses/train_contact-lenses_9.csv +18 -0
  289. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_0.csv +38 -0
  290. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_1.csv +38 -0
  291. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_10.csv +38 -0
  292. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_11.csv +38 -0
  293. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_12.csv +38 -0
  294. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_13.csv +38 -0
  295. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_14.csv +38 -0
  296. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_15.csv +38 -0
  297. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_16.csv +38 -0
  298. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_17.csv +38 -0
  299. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_18.csv +38 -0
  300. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_19.csv +38 -0
  301. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_2.csv +38 -0
  302. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_20.csv +38 -0
  303. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_21.csv +38 -0
  304. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_22.csv +38 -0
  305. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_23.csv +38 -0
  306. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_24.csv +38 -0
  307. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_25.csv +38 -0
  308. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_26.csv +38 -0
  309. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_27.csv +38 -0
  310. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_28.csv +38 -0
  311. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_29.csv +38 -0
  312. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_3.csv +38 -0
  313. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_4.csv +38 -0
  314. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_5.csv +38 -0
  315. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_6.csv +38 -0
  316. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_7.csv +38 -0
  317. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_8.csv +38 -0
  318. skordinal-0.0.1/skordinal/datasets/data/tae/test_tae_9.csv +38 -0
  319. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_0.csv +113 -0
  320. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_1.csv +113 -0
  321. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_10.csv +113 -0
  322. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_11.csv +113 -0
  323. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_12.csv +113 -0
  324. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_13.csv +113 -0
  325. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_14.csv +113 -0
  326. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_15.csv +113 -0
  327. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_16.csv +113 -0
  328. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_17.csv +113 -0
  329. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_18.csv +113 -0
  330. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_19.csv +113 -0
  331. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_2.csv +113 -0
  332. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_20.csv +113 -0
  333. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_21.csv +113 -0
  334. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_22.csv +113 -0
  335. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_23.csv +113 -0
  336. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_24.csv +113 -0
  337. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_25.csv +113 -0
  338. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_26.csv +113 -0
  339. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_27.csv +113 -0
  340. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_28.csv +113 -0
  341. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_29.csv +113 -0
  342. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_3.csv +113 -0
  343. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_4.csv +113 -0
  344. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_5.csv +113 -0
  345. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_6.csv +113 -0
  346. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_7.csv +113 -0
  347. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_8.csv +113 -0
  348. skordinal-0.0.1/skordinal/datasets/data/tae/train_tae_9.csv +113 -0
  349. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_0.csv +400 -0
  350. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_1.csv +400 -0
  351. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_10.csv +400 -0
  352. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_11.csv +400 -0
  353. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_12.csv +400 -0
  354. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_13.csv +400 -0
  355. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_14.csv +400 -0
  356. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_15.csv +400 -0
  357. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_16.csv +400 -0
  358. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_17.csv +400 -0
  359. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_18.csv +400 -0
  360. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_19.csv +400 -0
  361. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_2.csv +400 -0
  362. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_20.csv +400 -0
  363. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_21.csv +400 -0
  364. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_22.csv +400 -0
  365. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_23.csv +400 -0
  366. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_24.csv +400 -0
  367. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_25.csv +400 -0
  368. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_26.csv +400 -0
  369. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_27.csv +400 -0
  370. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_28.csv +400 -0
  371. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_29.csv +400 -0
  372. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_3.csv +400 -0
  373. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_4.csv +400 -0
  374. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_5.csv +400 -0
  375. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_6.csv +400 -0
  376. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_7.csv +400 -0
  377. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_8.csv +400 -0
  378. skordinal-0.0.1/skordinal/datasets/data/winequality-red/test_winequality-red_9.csv +400 -0
  379. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_0.csv +1199 -0
  380. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_1.csv +1199 -0
  381. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_10.csv +1199 -0
  382. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_11.csv +1199 -0
  383. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_12.csv +1199 -0
  384. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_13.csv +1199 -0
  385. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_14.csv +1199 -0
  386. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_15.csv +1199 -0
  387. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_16.csv +1199 -0
  388. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_17.csv +1199 -0
  389. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_18.csv +1199 -0
  390. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_19.csv +1199 -0
  391. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_2.csv +1199 -0
  392. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_20.csv +1199 -0
  393. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_21.csv +1199 -0
  394. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_22.csv +1199 -0
  395. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_23.csv +1199 -0
  396. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_24.csv +1199 -0
  397. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_25.csv +1199 -0
  398. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_26.csv +1199 -0
  399. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_27.csv +1199 -0
  400. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_28.csv +1199 -0
  401. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_29.csv +1199 -0
  402. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_3.csv +1199 -0
  403. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_4.csv +1199 -0
  404. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_5.csv +1199 -0
  405. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_6.csv +1199 -0
  406. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_7.csv +1199 -0
  407. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_8.csv +1199 -0
  408. skordinal-0.0.1/skordinal/datasets/data/winequality-red/train_winequality-red_9.csv +1199 -0
  409. skordinal-0.0.1/skordinal/metrics/__init__.py +43 -0
  410. skordinal-0.0.1/skordinal/metrics/_metrics.py +599 -0
  411. skordinal-0.0.1/skordinal/metrics/_utils.py +207 -0
  412. skordinal-0.0.1/skordinal/model_selection/__init__.py +18 -0
  413. skordinal-0.0.1/skordinal/model_selection/_loaders.py +157 -0
  414. skordinal-0.0.1/skordinal/model_selection/_validation.py +285 -0
  415. skordinal-0.0.1/skordinal/preprocessing/__init__.py +5 -0
  416. skordinal-0.0.1/skordinal/preprocessing/_scalers.py +222 -0
  417. skordinal-0.0.1/skordinal/results/__init__.py +7 -0
  418. skordinal-0.0.1/skordinal/results/_results.py +265 -0
  419. skordinal-0.0.1/skordinal/testing/__init__.py +15 -0
  420. skordinal-0.0.1/skordinal/testing/_testing_utils.py +13 -0
  421. skordinal-0.0.1/skordinal/utilities/__init__.py +5 -0
  422. skordinal-0.0.1/skordinal/utilities/_utilities.py +450 -0
  423. skordinal-0.0.1/skordinal.egg-info/PKG-INFO +206 -0
  424. skordinal-0.0.1/skordinal.egg-info/SOURCES.txt +425 -0
  425. skordinal-0.0.1/skordinal.egg-info/dependency_links.txt +1 -0
  426. skordinal-0.0.1/skordinal.egg-info/requires.txt +13 -0
  427. skordinal-0.0.1/skordinal.egg-info/top_level.txt +1 -0
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2025, The ORCA-python developer
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its
16
+ contributors may be used to endorse or promote products derived from
17
+ this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,2 @@
1
+ recursive-include skordinal/classifiers/src/libsvmrank *.h *.hpp
2
+ recursive-include skordinal/classifiers/src/svorex *.h
@@ -0,0 +1,206 @@
1
+ Metadata-Version: 2.4
2
+ Name: skordinal
3
+ Version: 0.0.1
4
+ Summary: Ordinal classification for Python, scikit-learn compatible
5
+ Author-email: Francisco Bérchez-Moreno <fberchez@uco.es>, Víctor Manuel Vargas <vvargas@uco.es>, Javier Barbero-Gómez <jbarbero@uco.es>, Rafael Ayllón-Gavilán <rayllong@uco.es>, David Guijo-Rubio <dguijo@uco.es>, Ángel Sevilla Molina <asevilla@uco.es>
6
+ License: BSD-3-Clause
7
+ Project-URL: Homepage, https://github.com/ayrna/skordinal
8
+ Project-URL: Repository, https://github.com/ayrna/skordinal
9
+ Project-URL: Bug Tracker, https://github.com/ayrna/skordinal/issues
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: BSD License
14
+ Classifier: Operating System :: POSIX
15
+ Classifier: Operating System :: Unix
16
+ Classifier: Programming Language :: C
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
24
+ Classifier: Topic :: Software Development :: Libraries
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: scikit-learn>=1.3.0
29
+ Requires-Dist: numpy>=1.21
30
+ Requires-Dist: pandas>=1.0.1
31
+ Requires-Dist: scipy>=1.7
32
+ Provides-Extra: dev
33
+ Requires-Dist: pytest>=7.0; extra == "dev"
34
+ Requires-Dist: pytest-cov; extra == "dev"
35
+ Requires-Dist: pytest-xdist[psutil]; extra == "dev"
36
+ Requires-Dist: pytest-benchmark; extra == "dev"
37
+ Requires-Dist: ruff>=0.4; extra == "dev"
38
+ Requires-Dist: mypy>=1.9; extra == "dev"
39
+ Requires-Dist: pre-commit; extra == "dev"
40
+ Dynamic: license-file
41
+
42
+ # skordinal
43
+
44
+ | Overview | |
45
+ |-----------|------------------------------------------------------------------------------------------------------------------------------------------|
46
+ | **CI/CD** | [![Unit tests](https://github.com/ayrna/skordinal/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/ayrna/skordinal/actions/workflows/unit-tests.yml) [![!python](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/) |
47
+ | **Code** | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![License - BSD 3-Clause](https://img.shields.io/pypi/l/pandas.svg)](https://github.com/ayrna/skordinal/blob/main/LICENSE) |
48
+
49
+
50
+ ## What is skordinal?
51
+
52
+ **skordinal** is an experimental framework built on Python that integrates with scikit-learn to automate machine learning experiments through simple JSON configuration files. Initially designed for ordinal classification, it supports regular classification algorithms as long as they are compatible with scikit-learn, making it easy to run reproducible experiments across multiple datasets and classification methods.
53
+
54
+ ## Table of Contents
55
+
56
+ - [Installation](#installation)
57
+ - [Requirements](#requirements)
58
+ - [Setup](#setup)
59
+ - [Testing Installation](#testing-installation)
60
+ - [Quick Start](#quick-start)
61
+ - [Configuration Files](#configuration-files)
62
+ - [general-conf](#general-conf)
63
+ - [configurations](#configurations)
64
+ - [Running Experiments](#running-experiments)
65
+ - [Basic Usage](#basic-usage)
66
+ - [Example Output](#example-output)
67
+ - [License](#license)
68
+
69
+ ## Installation
70
+
71
+ ### Requirements
72
+
73
+ skordinal requires Python 3.9 or higher and is tested on Python 3.9, 3.10, 3.11, and 3.12.
74
+
75
+ All dependencies are managed through `pyproject.toml` and include:
76
+ - numpy (>=1.21)
77
+ - pandas (>=1.0.1)
78
+ - scikit-learn (>=1.3.0)
79
+ - scipy (>=1.7)
80
+
81
+ ### Setup
82
+
83
+ 1. **Clone the repository**:
84
+ ```bash
85
+ git clone https://github.com/ayrna/skordinal
86
+ cd skordinal
87
+ ```
88
+
89
+ 2. **Install the framework**:
90
+ ```bash
91
+ pip install .
92
+ ```
93
+
94
+ For development purposes, use editable installation:
95
+ ```bash
96
+ pip install -e .
97
+ ```
98
+
99
+ Optional dependencies for development:
100
+ ```bash
101
+ pip install -e .[dev]
102
+ ```
103
+
104
+ > **Note:** The editable mode is required for running tests due to automatic dependency resolution.
105
+
106
+ ### Testing Installation
107
+
108
+ Test your installation with the provided example:
109
+
110
+ ```bash
111
+ python config.py with skordinal/configurations/full_functionality_test.json
112
+ ```
113
+
114
+ ## Quick Start
115
+
116
+ skordinal includes sample datasets with pre-partitioned train/test splits using a 30-holdout experimental design.
117
+
118
+ **Basic experiment configuration:**
119
+
120
+ ```json
121
+ {
122
+ "general_conf": {
123
+ "basedir": "skordinal/datasets/data",
124
+ "datasets": ["balance-scale", "contact-lenses", "tae"],
125
+ "hyperparam_cv_nfolds": 3,
126
+ "output_folder": "results/",
127
+ "metrics": ["ccr", "mae", "amae"],
128
+ "cv_metric": "mae"
129
+ },
130
+ "configurations": {
131
+ "SVM": {
132
+ "classifier": "SVC",
133
+ "parameters": {
134
+ "C": [0.001, 0.1, 1, 10, 100],
135
+ "gamma": [0.1, 1, 10]
136
+ }
137
+ },
138
+ "SVMOP": {
139
+ "classifier": "OrdinalDecomposition",
140
+ "parameters": {
141
+ "dtype": "ordered_partitions",
142
+ "decision_method": "frank_hall",
143
+ "base_classifier": "SVC",
144
+ "parameters": {
145
+ "C": [0.01, 0.1, 1, 10],
146
+ "gamma": [0.01, 0.1, 1, 10],
147
+ "probability": ["True"]
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ ```
154
+
155
+ **Run the experiment:**
156
+ ```bash
157
+ python config.py with my_experiment.json
158
+ ```
159
+
160
+ Results are saved in `results/` folder with performance metrics for each dataset-classifier combination. The framework automatically performs cross-validation, hyperparameter tuning, and evaluation on test sets.
161
+
162
+ ## Configuration Files
163
+
164
+ Experiments are defined using JSON configuration files with two main sections: general_conf for experiment settings and configurations for classifier definitions.
165
+
166
+ ### general-conf
167
+
168
+ Controls global experiment parameters.
169
+
170
+ **Required parameters:**
171
+ - **`basedir`**: folder containing all dataset subfolders, it doesn't allow more than one folder at a time. It can be indicated using a full path, or a relative one to the framework folder.
172
+ - **`datasets`**: name of datasets that will be experimented with. A subfolder with the same name must exist inside `basedir`.
173
+
174
+ **Optional parameters:**
175
+ - **`hyperparam_cv_folds`**: number of folds used while cross-validating.
176
+ - **`jobs`**: number of jobs used for GridSearchCV during cross-validation.
177
+ - **`input_preprocessing`**: data preprocessing (`"std"` for standardization, `"norm"` for normalization, `""` for none)
178
+ - **`output_folder`**: name of the folder where all experiment results will be stored.
179
+ - **`metrics`**: name of the accuracy metrics to measure the train and test performance of the classifier.
180
+ - **`cv_metric`**: error measure used for GridSearchCV to find the best set of hyper-parameters.
181
+
182
+ ### configurations
183
+
184
+ Defines classifiers and their hyperparameters for GridSearchCV. Each configuration has a name and consists of:
185
+
186
+ - **`classifier`**: scikit-learn or built-in skordinal classifier
187
+ - **`parameters`**: hyperparameters for grid search (nested for ensemble methods)
188
+
189
+ ## Running Experiments
190
+
191
+ ### Basic Usage
192
+
193
+ ```bash
194
+ python config.py with experiment_file.json
195
+ ```
196
+
197
+ ### Example Output
198
+
199
+ Results are stored in the specified output folder with detailed performance metrics and hyperparameter information for each dataset and configuration combination.
200
+
201
+ ## License
202
+ [BSD 3](LICENSE)
203
+
204
+ <hr>
205
+
206
+ [Go to Top](#table-of-contents)
@@ -0,0 +1,165 @@
1
+ # skordinal
2
+
3
+ | Overview | |
4
+ |-----------|------------------------------------------------------------------------------------------------------------------------------------------|
5
+ | **CI/CD** | [![Unit tests](https://github.com/ayrna/skordinal/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/ayrna/skordinal/actions/workflows/unit-tests.yml) [![!python](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/) |
6
+ | **Code** | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![License - BSD 3-Clause](https://img.shields.io/pypi/l/pandas.svg)](https://github.com/ayrna/skordinal/blob/main/LICENSE) |
7
+
8
+
9
+ ## What is skordinal?
10
+
11
+ **skordinal** is an experimental framework built on Python that integrates with scikit-learn to automate machine learning experiments through simple JSON configuration files. Initially designed for ordinal classification, it supports regular classification algorithms as long as they are compatible with scikit-learn, making it easy to run reproducible experiments across multiple datasets and classification methods.
12
+
13
+ ## Table of Contents
14
+
15
+ - [Installation](#installation)
16
+ - [Requirements](#requirements)
17
+ - [Setup](#setup)
18
+ - [Testing Installation](#testing-installation)
19
+ - [Quick Start](#quick-start)
20
+ - [Configuration Files](#configuration-files)
21
+ - [general-conf](#general-conf)
22
+ - [configurations](#configurations)
23
+ - [Running Experiments](#running-experiments)
24
+ - [Basic Usage](#basic-usage)
25
+ - [Example Output](#example-output)
26
+ - [License](#license)
27
+
28
+ ## Installation
29
+
30
+ ### Requirements
31
+
32
+ skordinal requires Python 3.9 or higher and is tested on Python 3.9, 3.10, 3.11, and 3.12.
33
+
34
+ All dependencies are managed through `pyproject.toml` and include:
35
+ - numpy (>=1.21)
36
+ - pandas (>=1.0.1)
37
+ - scikit-learn (>=1.3.0)
38
+ - scipy (>=1.7)
39
+
40
+ ### Setup
41
+
42
+ 1. **Clone the repository**:
43
+ ```bash
44
+ git clone https://github.com/ayrna/skordinal
45
+ cd skordinal
46
+ ```
47
+
48
+ 2. **Install the framework**:
49
+ ```bash
50
+ pip install .
51
+ ```
52
+
53
+ For development purposes, use editable installation:
54
+ ```bash
55
+ pip install -e .
56
+ ```
57
+
58
+ Optional dependencies for development:
59
+ ```bash
60
+ pip install -e .[dev]
61
+ ```
62
+
63
+ > **Note:** The editable mode is required for running tests due to automatic dependency resolution.
64
+
65
+ ### Testing Installation
66
+
67
+ Test your installation with the provided example:
68
+
69
+ ```bash
70
+ python config.py with skordinal/configurations/full_functionality_test.json
71
+ ```
72
+
73
+ ## Quick Start
74
+
75
+ skordinal includes sample datasets with pre-partitioned train/test splits using a 30-holdout experimental design.
76
+
77
+ **Basic experiment configuration:**
78
+
79
+ ```json
80
+ {
81
+ "general_conf": {
82
+ "basedir": "skordinal/datasets/data",
83
+ "datasets": ["balance-scale", "contact-lenses", "tae"],
84
+ "hyperparam_cv_nfolds": 3,
85
+ "output_folder": "results/",
86
+ "metrics": ["ccr", "mae", "amae"],
87
+ "cv_metric": "mae"
88
+ },
89
+ "configurations": {
90
+ "SVM": {
91
+ "classifier": "SVC",
92
+ "parameters": {
93
+ "C": [0.001, 0.1, 1, 10, 100],
94
+ "gamma": [0.1, 1, 10]
95
+ }
96
+ },
97
+ "SVMOP": {
98
+ "classifier": "OrdinalDecomposition",
99
+ "parameters": {
100
+ "dtype": "ordered_partitions",
101
+ "decision_method": "frank_hall",
102
+ "base_classifier": "SVC",
103
+ "parameters": {
104
+ "C": [0.01, 0.1, 1, 10],
105
+ "gamma": [0.01, 0.1, 1, 10],
106
+ "probability": ["True"]
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ ```
113
+
114
+ **Run the experiment:**
115
+ ```bash
116
+ python config.py with my_experiment.json
117
+ ```
118
+
119
+ Results are saved in `results/` folder with performance metrics for each dataset-classifier combination. The framework automatically performs cross-validation, hyperparameter tuning, and evaluation on test sets.
120
+
121
+ ## Configuration Files
122
+
123
+ Experiments are defined using JSON configuration files with two main sections: general_conf for experiment settings and configurations for classifier definitions.
124
+
125
+ ### general-conf
126
+
127
+ Controls global experiment parameters.
128
+
129
+ **Required parameters:**
130
+ - **`basedir`**: folder containing all dataset subfolders, it doesn't allow more than one folder at a time. It can be indicated using a full path, or a relative one to the framework folder.
131
+ - **`datasets`**: name of datasets that will be experimented with. A subfolder with the same name must exist inside `basedir`.
132
+
133
+ **Optional parameters:**
134
+ - **`hyperparam_cv_folds`**: number of folds used while cross-validating.
135
+ - **`jobs`**: number of jobs used for GridSearchCV during cross-validation.
136
+ - **`input_preprocessing`**: data preprocessing (`"std"` for standardization, `"norm"` for normalization, `""` for none)
137
+ - **`output_folder`**: name of the folder where all experiment results will be stored.
138
+ - **`metrics`**: name of the accuracy metrics to measure the train and test performance of the classifier.
139
+ - **`cv_metric`**: error measure used for GridSearchCV to find the best set of hyper-parameters.
140
+
141
+ ### configurations
142
+
143
+ Defines classifiers and their hyperparameters for GridSearchCV. Each configuration has a name and consists of:
144
+
145
+ - **`classifier`**: scikit-learn or built-in skordinal classifier
146
+ - **`parameters`**: hyperparameters for grid search (nested for ensemble methods)
147
+
148
+ ## Running Experiments
149
+
150
+ ### Basic Usage
151
+
152
+ ```bash
153
+ python config.py with experiment_file.json
154
+ ```
155
+
156
+ ### Example Output
157
+
158
+ Results are stored in the specified output folder with detailed performance metrics and hyperparameter information for each dataset and configuration combination.
159
+
160
+ ## License
161
+ [BSD 3](LICENSE)
162
+
163
+ <hr>
164
+
165
+ [Go to Top](#table-of-contents)
@@ -0,0 +1,151 @@
1
+ [build-system]
2
+ requires = ["setuptools>=74.1.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "skordinal"
7
+ version = "0.0.1"
8
+ description = "Ordinal classification for Python, scikit-learn compatible"
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ license = {text = "BSD-3-Clause"}
12
+ authors = [
13
+ {name = "Francisco Bérchez-Moreno", email = "fberchez@uco.es"},
14
+ {name = "Víctor Manuel Vargas", email = "vvargas@uco.es"},
15
+ {name = "Javier Barbero-Gómez", email = "jbarbero@uco.es"},
16
+ {name = "Rafael Ayllón-Gavilán", email = "rayllong@uco.es"},
17
+ {name = "David Guijo-Rubio", email = "dguijo@uco.es"},
18
+ {name = "Ángel Sevilla Molina", email = "asevilla@uco.es"},
19
+ ]
20
+ classifiers = [
21
+ "Development Status :: 3 - Alpha",
22
+ "Intended Audience :: Science/Research",
23
+ "Intended Audience :: Developers",
24
+ "License :: OSI Approved :: BSD License",
25
+ "Operating System :: POSIX",
26
+ "Operating System :: Unix",
27
+ "Programming Language :: C",
28
+ "Programming Language :: Python",
29
+ "Programming Language :: Python :: 3",
30
+ "Programming Language :: Python :: 3.9",
31
+ "Programming Language :: Python :: 3.10",
32
+ "Programming Language :: Python :: 3.11",
33
+ "Programming Language :: Python :: 3.12",
34
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
35
+ "Topic :: Software Development :: Libraries",
36
+ ]
37
+ dependencies = [
38
+ "scikit-learn>=1.3.0",
39
+ "numpy>=1.21",
40
+ "pandas>=1.0.1",
41
+ "scipy>=1.7",
42
+ ]
43
+
44
+ [project.optional-dependencies]
45
+ dev = [
46
+ "pytest>=7.0",
47
+ "pytest-cov",
48
+ "pytest-xdist[psutil]",
49
+ "pytest-benchmark",
50
+ "ruff>=0.4",
51
+ "mypy>=1.9",
52
+ "pre-commit",
53
+ ]
54
+
55
+ [project.urls]
56
+ Homepage = "https://github.com/ayrna/skordinal"
57
+ Repository = "https://github.com/ayrna/skordinal"
58
+ "Bug Tracker" = "https://github.com/ayrna/skordinal/issues"
59
+
60
+ [tool.setuptools.packages.find]
61
+ include = [
62
+ "skordinal",
63
+ "skordinal.*",
64
+ ]
65
+ exclude = ["*.tests"]
66
+ namespaces = false
67
+
68
+ [tool.setuptools.package-data]
69
+ "skordinal.datasets" = ["data/*/*.csv"]
70
+
71
+ [tool.setuptools]
72
+ ext-modules = [
73
+ {name = "skordinal.classifiers._libsvmrank", language = "c++", sources = [
74
+ "skordinal/classifiers/src/libsvmrank/python/svm-module.cpp",
75
+ "skordinal/classifiers/src/libsvmrank/python/svm-train.cpp",
76
+ "skordinal/classifiers/src/libsvmrank/python/svm-predict.cpp",
77
+ "skordinal/classifiers/src/libsvmrank/python/svm-model-python.cpp",
78
+ "skordinal/classifiers/src/libsvmrank/python/svm.cpp",
79
+ ], extra-compile-args = ["-Wno-unused-result"]},
80
+ {name = "skordinal.classifiers._libsvorex", language = "c", sources = [
81
+ "skordinal/classifiers/src/svorex/svorex_module.c",
82
+ "skordinal/classifiers/src/svorex/svorex_train.c",
83
+ "skordinal/classifiers/src/svorex/svorex_predict.c",
84
+ "skordinal/classifiers/src/svorex/alphas.c",
85
+ "skordinal/classifiers/src/svorex/cachelist.c",
86
+ "skordinal/classifiers/src/svorex/datalist.c",
87
+ "skordinal/classifiers/src/svorex/def_settings.c",
88
+ "skordinal/classifiers/src/svorex/loadfile.c",
89
+ "skordinal/classifiers/src/svorex/ordinal_takestep.c",
90
+ "skordinal/classifiers/src/svorex/setandfi.c",
91
+ "skordinal/classifiers/src/svorex/smo_kernel.c",
92
+ "skordinal/classifiers/src/svorex/smo_routine.c",
93
+ "skordinal/classifiers/src/svorex/smo_settings.c",
94
+ "skordinal/classifiers/src/svorex/smo_timer.c",
95
+ "skordinal/classifiers/src/svorex/svc_predict.c",
96
+ "skordinal/classifiers/src/svorex/smo_model_python.c",
97
+ "skordinal/classifiers/src/svorex/smo_loadproblem_python.c",
98
+ "skordinal/classifiers/src/svorex/smo_routine_python.c",
99
+ ], extra-compile-args = ["-Wno-unused-result", "-ffp-contract=off"], libraries = ["m"]}
100
+ ]
101
+
102
+ [tool.pytest.ini_options]
103
+ testpaths = ["skordinal"]
104
+ addopts = ["--color=yes", "--import-mode=importlib"]
105
+
106
+ [tool.ruff]
107
+ line-length = 88
108
+ target-version = "py39"
109
+ exclude = [
110
+ ".eggs",
111
+ ".git",
112
+ ".mypy_cache",
113
+ "__pycache__",
114
+ "build",
115
+ "dist",
116
+ "skordinal/classifiers/src/libsvmrank/",
117
+ "skordinal/classifiers/src/svorex/setup.py",
118
+ ]
119
+
120
+ [tool.ruff.lint]
121
+ select = ["E", "F", "W", "I"]
122
+ ignore = ["E501"]
123
+
124
+ [tool.mypy]
125
+ ignore_missing_imports = true
126
+ allow_redefinition = true
127
+ exclude = ["skordinal/classifiers/src/libsvmrank/", "skordinal/classifiers/src/svorex/"]
128
+
129
+ [tool.check-sdist]
130
+ git-only = [
131
+ ".codecov.yml",
132
+ ".coveragerc",
133
+ ".gitignore",
134
+ "config.py",
135
+ "doc/**",
136
+ "skordinal/**/tests/**",
137
+ "skordinal/testing/**",
138
+ "skordinal/configurations/**",
139
+ "skordinal/classifiers/src/libsvmrank/grid.py",
140
+ "skordinal/classifiers/src/libsvmrank/svm-predict.c",
141
+ "skordinal/classifiers/src/libsvmrank/svm-train.c",
142
+ "skordinal/classifiers/src/libsvmrank/svm.cpp",
143
+ "skordinal/classifiers/src/libsvmrank/Makefile",
144
+ "skordinal/classifiers/src/libsvmrank/README",
145
+ "skordinal/classifiers/src/libsvmrank/python/setup.py",
146
+ "skordinal/classifiers/src/libsvmrank/python/makefile",
147
+ "skordinal/classifiers/src/svorex/main.c",
148
+ "skordinal/classifiers/src/svorex/Makefile",
149
+ "skordinal/classifiers/src/svorex/README.svorex",
150
+ "skordinal/classifiers/src/svorex/setup.py",
151
+ ]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,5 @@
1
+ """Setup script for skordinal."""
2
+
3
+ from setuptools import setup
4
+
5
+ setup()
@@ -0,0 +1,4 @@
1
+ """skordinal."""
2
+
3
+ __all__: list[str] = []
4
+ __version__ = "0.0.1"
@@ -0,0 +1,15 @@
1
+ """Ordinal classification classifiers module."""
2
+
3
+ from ._nnop import NNOP
4
+ from ._nnpom import NNPOM
5
+ from ._ordinal_decomposition import OrdinalDecomposition
6
+ from ._redsvm import REDSVM
7
+ from ._svorex import SVOREX
8
+
9
+ __all__ = [
10
+ "NNOP",
11
+ "NNPOM",
12
+ "OrdinalDecomposition",
13
+ "REDSVM",
14
+ "SVOREX",
15
+ ]