2011-08-24 17 views
6

हमें जावा में लॉजिस्टिक रिग्रेशन करने की आवश्यकता है। हमने इस कोड का उपयोग पायथन http://blog.smellthedata.com/2009/06/python-logistic-regression-with-l2.html में किया और मूल रूप से जावा में एक ही चीज़ चाहिए। मुझे वेका निर्देशित किया गया था, लेकिन लाइसेंस गैर-वाणिज्यिक है।जावा में लॉजिस्टिक रिग्रेशन

मुझे पता चला कि ओमेगाहैट एपीआई में बीएफजीएस मिनीमाइज़र जैसे सिस्पी है, लेकिन मैं एपीआई को नहीं समझ सकता: http://www.omegahat.org/api/org/omegahat/Numerics/Optimizers/OptimizerAlgorithmBFGS.html मैं मॉडल के साथ एक वर्ग को कार्यान्वित करना चाहता हूं और संभावना कार्यों में डाल देना चाहता हूं। लेकिन मॉडल.वेल एक मॉडलपॉइंट न्यूमेरिक लेता है जिसमें एक eval भी है। किसी भी मामले में, यह गणित के साथ स्पष्ट रूप से सहसंबंधित नहीं है क्योंकि numpy का उपयोग कर पायथन कोड है। क्या ओमेगाहट एपीआई का इस्तेमाल या रखरखाव किया जाता है? मुझे इसके लिए मेलिंग सूची नहीं मिल सका।

उत्तर

7

इनपुट के लिए धन्यवाद। बहुत खोज के बाद मुझे यह पता चला: http://mallet.cs.umass.edu/optimization.php यह लगभग 1: 1 अनुवाद है कि numpy कार्यान्वयन कैसे काम करता है, यह हमें गणितीय सूत्रों के साथ खुद को रसद को रिग्रेशन करने की अनुमति देता है। तो मैं अपनी पायथन कक्षा ले सकता हूं और आवश्यक 4-5 विधियों को लागू कर सकता हूं और फिर इसे हमारे लॉजिस्टिक रिग्रेशन करने के लिए बीएफजीएस सॉल्वर को पास कर सकता हूं।

यह बहुत अच्छा काम करता है, केवल एक चीज जिसे हमें एहसास हुआ था कि मैलेट समारोह को अधिकतम करता है और नम्पी के पास मिनीमाइज़र होता है।

1

यदि आपको कुछ और नहीं मिला है, तो Apache Commons Math: पर एक नज़र डालें, यह हल्के, स्वयं निहित गणित और सांख्यिकी घटकों की एक लाइब्रेरी है जो जावा प्रोग्रामिंग भाषा या कॉमन्स लैंग में उपलब्ध सबसे आम समस्याओं को संबोधित करते हैं।

शुभकामनाएं।

3

वीका लाइसेंस का व्यावसायिक संस्करण है, विवरण के लिए this page देखें।

हालांकि, अगर लॉजिस्टिक रिग्रेशन आपको केवल एकमात्र डेटा खनन तकनीक की आवश्यकता है, तो LIBLINEAR पर एक नज़र डालें, जो distributed under BSD license है।

1

केवल 2 वर्गों (प्लस एक उपयोगिता) में simple implementation for Java on GitHub है। यह शायद अनुकूलित नहीं है लेकिन डाउनलोड करने के लिए कोई निर्भरता नहीं है।

मैंने pull request बनाया जो इसे एक फ़ाइल में आगे बढ़ाता है।

+2

हैलो, मैंने कोड के माध्यम से थोड़ा सा देखा और ऑप्टिमाइज़र स्वयं लागत फ़ंक्शन (पसंद) का उपयोग नहीं कर रहा है, इसलिए मुझे आश्चर्य है कि वास्तव में यहां क्या अनुकूलित किया जा रहा है। यह स्पष्ट है कि लागत फ़ंक्शन का ढाल गणना करना आसान है, फिर भी वज़न अपडेट सही तरीके से अपडेट नहीं होता है, जहां तक ​​मैं कह सकता हूं। –

+0

@WernerVanBelle मैं वास्तव में वास्तव में नहीं जानता कि लॉजिस्टिक रीग्रेशन की गणना कैसे करें, मैंने इसे परीक्षण के लिए एक फ़ाइल में अभी भी क्रंच किया है, लेकिन यह सच है कि कुछ चीजें ठीक से नहीं हुईं। यदि आप समस्याओं को देखते हैं, तो मुझे उन्हें सही करने में खुशी होगी! – Matthieu

संबंधित मुद्दे