{"id":11940,"date":"2021-01-31T10:43:56","date_gmt":"2021-01-31T15:43:56","guid":{"rendered":"http:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/?p=11940"},"modified":"2021-01-31T10:43:56","modified_gmt":"2021-01-31T15:43:56","slug":"machine-learning-models-are-missing-contracts","status":"publish","type":"post","link":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/machine-learning-models-are-missing-contracts\/11940\/","title":{"rendered":"Machine Learning Models are Missing Contracts"},"content":{"rendered":"Why pretrained machine learning models are often unusable and irreproducible \u2014 and what we can do about it. Introduction A useful approach to designing software is through\u00a0contracts. For every function in your codebase, you start by writing its contract: clearly specifying what inputs are expected and valid for that function (the\u00a0precondition), and what the function will do (the\u00a0postcondition) when provided an appropriate input. This is often explicitly stated in the docstring of a function. Consider this example from the\u00a0math\u00a0module in Python (implemented in C): \/* Approximate square root of a large 64-bit integer. Given `n` satisfying `2**62 &lt;= <a href=\"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/machine-learning-models-are-missing-contracts\/11940\/\" class=\"more-link\">(more&hellip;)<\/a>","protected":false},"excerpt":{"rendered":"<p>Why pretrained machine learning models are often unusable and irreproducible \u2014 and what we can do about it. Introduction A useful approach to designing software is through\u00a0contracts. For every function in your codebase, you start by writing its contract: clearly specifying what inputs are expected and valid for that function (the\u00a0precondition), and what the function [&hellip;]<\/p>\n","protected":false},"author":72,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11,48],"tags":[59,368,243,1106],"class_list":["post-11940","post","type-post","status-publish","format-standard","hentry","category-industry-news","category-left-hand","tag-analytics","tag-artificial-intelligence","tag-machine-learning","tag-machine-learning-models"],"_links":{"self":[{"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/posts\/11940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/comments?post=11940"}],"version-history":[{"count":1,"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/posts\/11940\/revisions"}],"predecessor-version":[{"id":11941,"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/posts\/11940\/revisions\/11941"}],"wp:attachment":[{"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/media?parent=11940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/categories?post=11940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.predictiveanalyticsworld.com\/machinelearningtimes\/wp-json\/wp\/v2\/tags?post=11940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}