Answers.Body: <p>If goal is to develop ML algorithms then focus on Maths concepts linear algebra, probability and statistics. Try out CS problem solving basic data structure and algorithms. 
  Python has good ML libraries but if you know java then you can pick python easily.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-04-23T09:59:46.607Z
Answers.Text: Thank you for your reply, @Vikram . I am currently studying Linear in my spare time and have a general interest in statistics. Will take a look at CS problem solving. Watching a lot of videos recent on Python. It does seem it may be quite an easy transition.
Answers.UserDisplayName: James
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-04-23T08:04:13.437Z
Answers.LastActivityDate: 2017-04-23T08:04:13.437Z
Answers.UserDisplayName: Vikram Singh
Answers.Body: <p>You can't "develop" ML algorithms without statistical knowledge, it simply doesn't work that way and it's impossible.</p>
  
  <p>Programming is cheap for modelling, anyone who has done a computer science degree can do it. It's just like giving some inputs and giving something back. Lots of framework can do that for you, and it's easy.</p>
  
  <p>In order for you to "develop" ML algorithms, you should pursue a mathematics degree. Generally, you're expected to have a PhD or something similar to "develop" ML algorithms.</p>
  
  <p>If you're really interested in programming, you should do R and Python. Java is not a common data science programming language.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-04-23T11:25:04.483Z
Answers.LastActivityDate: 2017-04-23T11:25:04.483Z
Answers.UserDisplayName: SmallChess
Answers.Body: <p>As others have pointed out, your level of maths/statistics knowledge is probably more important than your chosen programming language.  That is, particularly true w/r/t developing (presumably new) ML algorithms.  OTOH, from an "applied ML" perspective, where you just use pre-baked implementations of existing algorithms, one of the big questions is "do good libraries for these various operations exist in language $X"? </p>
  
  <p>Where the value of $X is "Java" the answer is "yes".  There are tons of high-quality libraries of most popular and widely used ML algorithms.  There are also tons of libraries for nearly everything else, which helps when constructing wider systems which incorporate elements of ML/AI.</p>
  
  <p>That said, w/r/t machine learning specifically, there are probably <em>more</em> extant libraries and what-not in Python or R, than in Java.  Also, from a "rapid development" point of view, you may find that Python has some advantages as as of a result of its dynamic typing and lack of "boiler-plate" as found in Java.</p>
  
  <p>Net-net, I'd say Java is a fine choice, along with Python or R, with C++ also in the mix.  It may not be the <em>perfect</em> choice, but it's absolutely "good enough" and then some.</p>
  
  <p>If you want a feel for some of the projects that exist now in various languages, to go mloss.org and use the <a href="http://mloss.org/software/language/" rel="nofollow noreferrer">filter by language feature</a>.  Click around there and examine some of the options you find.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-04-26T21:00:06.250Z
Answers.LastActivityDate: 2017-04-26T21:00:06.250Z
Answers.UserDisplayName: mindcrime
Body: <p>I am currently studying Java (Se &amp;&amp; EE). I am wondering if it is a good platform for developing ML algorithms for AI.<br>
  <strong>Areas of interest</strong>: facial rec - Speech Rec - understanding conversation in group conversations.<br>
  <strong>Financial Institutions</strong>: Risk assessment ML, etc.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-04-01T14:14:59.807Z
Comments.Text: Hello james.professionally,I would suggest python and C/C++ for instance;Python has several powerful libraries or packages,that will help with machine learning such as [NumPy](http://www.numpy.org/).
  look at C/C++; many machine learning algorithms are processor constrained so AI software engineers try to get as close to the metal as they can. C++ has a speed advantage over Java much (but not all) of the time. Java is often better for big collaborative projects.Also go through this post http://ai.stackexchange.com/questions/3019/can-lua-be-a-stable-portable-and-powerful-language-for-ai
Comments.UserDisplayName: quintumnia
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-04-01T16:55:11.410Z
Comments.Text: Hello! Thank you for the information. I knew Python was held in high regard when it comes to Machine Learning. I have heard brief talks about Java in ML specifically Hadoop. I Had plans to start dabbling in Python at some point and with answers such as yours above, I think it would be a wise choice. Thank you!
Comments.UserDisplayName: James
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-04-01T19:46:08.370Z
Comments.Text: We're just finishing up a development cycle for mobile applications utilizing Java and Objective C.  We're likely going to recode in C++, not only for the speed advantages, but to eliminate the need for distinct languages on iOS and Android. (i.e. if you're thinking about mobile applications, C++ has advantages.)
Comments.UserDisplayName: DukeZhou
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-04-02T06:50:52.557Z
Comments.Text: Sounds interesting, but why C++ in terms of advantages on mobile? apart from delivering better speed than java, Im not sure why.
Comments.UserDisplayName: James
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-04-23T13:23:34.887Z
Comments.Text: You should see OpenCV. It has some very good libraries for Machine Learning and Artificial Intelligence related kinds of stuff. Also, you can easily import them in python, Java and C++.
Comments.UserDisplayName: Ugnes
Tags: <machine-learning><algorithm><image-recognition>
Title: Java - A good place to begin if over all goal is ML and Ai?
UserDisplayName: James
ThreadText: # Java - A good place to begin if over all goal is ML and Ai?
  
  (Asked by: username_0 on 2017-04-01)
  
  I am currently studying Java (Se && EE). I am wondering if it is a good platform for developing ML algorithms for AI.  
  **Areas of interest**: facial rec - Speech Rec - understanding conversation in group conversations.  
  **Financial Institutions**: Risk assessment ML, etc.
  
  **Tags:** machine-learning, algorithm, image-recognition
  
  > **Comments:**
  > **username_1**: Hello username_0.professionally,I would suggest python and C/C++ for instance;Python has several powerful libraries or packages,that will help with machine learning such as [NumPy](http://www.numpy.org/). look at C/C++; many machine learning algorithms are processor constrained so AI software engineers try to get as close to the metal as they can. C++ has a speed advantage over Java much (but not all) of the time. Java is often better for big collaborative projects.Also go through this post http://ai.stackexchange.com/questions/3019/can-lua-be-a-stable-portable-and-powerful-language-for-ai  
  > **username_0**: Hello! Thank you for the information. I knew Python was held in high regard when it comes to Machine Learning. I have heard brief talks about Java in ML specifically Hadoop. I Had plans to start dabbling in Python at some point and with answers such as yours above, I think it would be a wise choice. Thank you!  
  > **username_2**: We're just finishing up a development cycle for mobile applications utilizing Java and Objective C.  We're likely going to recode in C++, not only for the speed advantages, but to eliminate the need for distinct languages on iOS and Android. (i.e. if you're thinking about mobile applications, C++ has advantages.)  
  > **username_0**: Sounds interesting, but why C++ in terms of advantages on mobile? apart from delivering better speed than java, Im not sure why.  
  > **username_3**: You should see OpenCV. It has some very good libraries for Machine Learning and Artificial Intelligence related kinds of stuff. Also, you can easily import them in python, Java and C++.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_4 on 2017-04-23. Score: 1
  
  If goal is to develop ML algorithms then focus on Maths concepts linear algebra, probability and statistics. Try out CS problem solving basic data structure and algorithms.
  Python has good ML libraries but if you know java then you can pick python easily.
  
  > **Comments:**
  > **username_0**: Thank you for your reply, @username_4 . I am currently studying Linear in my spare time and have a general interest in statistics. Will take a look at CS problem solving. Watching a lot of videos recent on Python. It does seem it may be quite an easy transition.  
  
  ---
  
  ### Answer by username_5 on 2017-04-23. Score: 0
  
  You can't "develop" ML algorithms without statistical knowledge, it simply doesn't work that way and it's impossible.
  
  Programming is cheap for modelling, anyone who has done a computer science degree can do it. It's just like giving some inputs and giving something back. Lots of framework can do that for you, and it's easy.
  
  In order for you to "develop" ML algorithms, you should pursue a mathematics degree. Generally, you're expected to have a PhD or something similar to "develop" ML algorithms.
  
  If you're really interested in programming, you should do R and Python. Java is not a common data science programming language.
  
  
  ---
  
  ### Answer by username_6 on 2017-04-26. Score: 0
  
  As others have pointed out, your level of maths/statistics knowledge is probably more important than your chosen programming language. That is, particularly true w/r/t developing (presumably new) ML algorithms. OTOH, from an "applied ML" perspective, where you just use pre-baked implementations of existing algorithms, one of the big questions is "do good libraries for these various operations exist in language $X"?
  
  Where the value of $X is "Java" the answer is "yes". There are tons of high-quality libraries of most popular and widely used ML algorithms. There are also tons of libraries for nearly everything else, which helps when constructing wider systems which incorporate elements of ML/AI.
  
  That said, w/r/t machine learning specifically, there are probably *more* extant libraries and what-not in Python or R, than in Java. Also, from a "rapid development" point of view, you may find that Python has some advantages as as of a result of its dynamic typing and lack of "boiler-plate" as found in Java.
  
  Net-net, I'd say Java is a fine choice, along with Python or R, with C++ also in the mix. It may not be the *perfect* choice, but it's absolutely "good enough" and then some.
  
  If you want a feel for some of the projects that exist now in various languages, to go mloss.org and use the [filter by language feature](http://mloss.org/software/language/). Click around there and examine some of the options you find.
  
  
  ---
  
  