Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
During developing algorithm I need a lot of well known descriptos, such as SURF, HOG, Hessian, combined with classifiers (SVM).
Also I would need to do a lot of tweaking of these algorithms (not just hyperparameters changing).
As far as I know Matlab computer vision toolbox is not very good for all of these.
Which language or software has more open source libraries and provides best flexibility?
OpenCV - Open-source C++ library, with interface to Python and Java.
Sounds like it has everything you need.
OpenCV is fast and contains everything you need, I would prefer to use it in python (it has an interface for python)
and then use Scikit-learn for machine-learning, which is a simpler yet powerful library in python. with a very active open-source community
Since you are familiar with Matlab, NumPy and matplotlib should be easier to learn, they have a lot of methods and syntax in common. I did matlab before python too and found easier to grasp NumPy
Scipy, Pandas, Ipython-Notebook are other libraries that can be easily used and are shipped with Anaconda distribution of python. Scikitlearn is also shipped with Anaconda.
just get the Anaconda distribution from link below and you're ready to work, everything is well managed in anaconda, you don't even need to worry about package management and dependency issues.
https://www.continuum.io/downloads
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I am trying to make a binary classifier using machine learning and I am trying to develop other features for my data using correlated features (numerical attributes) I have. I searched much but could not get a block of code that will work with me.
What should i do?
I've searched in dimenshionality reduction and found library (Multivariate Statistics) but actually i did not understand and i felt lost :D
No one will make a choice for you what exact method to choose. They are many, many different ways of doing a binary classification and to do feature extraction. If you feel overwhelmed by all these names that libraries such as Multivariate Statistics offer, then take a look at a textbook on statistics and machine learning, understanding the methods is independent from the programming language.
Start with some simple methods such as principal compenent analysis (PCA), (MultivariateStats.jl provides that), then test others as you gain more knowledge on your data and the methods.
Some Julia libraries to take a look at: JuliaStats (https://github.com/JuliaStats) with its parts
StatsBase for the most basic stuff
MultivariateStats for methods like PCA
StatsModels (and DataFrames) for statistical models
many more ....
For Neural Networks there are Flux.jl and KNet.jl
For Clustering there is Clustering.jl
Then, there are also bindings to the python libraries Tensorflow (Neural Networks & more) and Scikit-Learn (all kinds of ML algorithms)
There are many more projects, but these are some that I think are important.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
Is Octave good to learn for Machine Learning?
Or Python and other libraries would do?
Depends what you want to do.
Octave is excellent for fast prototyping and learning. The language is simple and you can focus on grasping the concepts of ML. On the other side, Python is very powerful and has unparalleled stack of libraries and frameworks that give you the ability to dive into machine learning on the level that you are comfortable with. And it's also a simple language in which you can get comfortable pretty fast.
If you just want to play with machine learning a little, I would recommend Octave as it's simple and straightforward. In all other cases, I would recommend Python as it's a powerful language for building complete systems and has a large community which can help you with any problem you could possibly encounter.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Any tools could help recognize the data distribution pattern, and then make the decision to choose ML algorithms?
Firstly, you have to understand Machine Learning as a field, and have some understanding of its sub fields. If you don't intuitively understand your tools, you won't be able to identify when to use them.
The idea you're talking about is called exploratory data analysis, and it can be very approachable if you think about it the right way. Think about it in terms of the scientific method:
First, look over the data, and any documentation about it.
Then, come to some hypotheses about the patterns that might exist.
Based on your understanding of ML, brainstorm some approaches that might give some insight into your hypotheses. For example, if you see that your proposed dependent value can have several distinct values, you have a classification problem, and based on your input data, you should choose an appropriate approach.
The tools that you might find useful are plentiful, but a good start could be the programming language R, or Python. Both are very strong data science tools. R has a greater learning curve, but is built with data science in mind. Python, on the other hand, is very easy to pick up, but you have more choices to make with regards to ML and data science libraries. With Python, look into Pandas for CSV and data manipulation, and Tensorflow, Theano or Scikit-Learn for data analysis and ML.
Hope this helps!
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have the skills with C++, ruby,rails, and some other scripting languages. I want to start experimenting and learn concepts in Data mining and machine learning.
I want to be well equipped with the programming knowledge required for those concepts.
Which language has best support for DM and ML? puthon, Java, C++? Is there anything coming up in Javascript?
Thanks
Use whatever you are most comfortable with.
At least if it has the basics around. JavaScript and PHP are not very good in this domain. They just don't scale well for numerical computations. Python, R, Java and Scala are most popular. Theres Matlab, but there is not much happening there anymore. There is Julia which has a similar syntax but which is much more alive and shows some promise, if it weren't for colum-major,1-indexed arrays and the matlab-like syntax. Some use Lua, others Mathematica...
There are many many factors that play a role.
For example, scripting languages like Python and R are really slow - but these two also interface very well to C libraries (and Fortran!) so if you nostly use them as a "driver" and the libraries do all the work then they can be very usable. Just make sure to not assume every module is fast...
I think that perhaps your question is a bit off target. The languages themselves don't generally have the support: it's packages that interface with those languages, such as Apache Spark (interface to their ML package), Intel's MKL (vector and matrix operations optimized for Xeon Phi), SciKit (Python interface), etc.
That said, I see the most active support for languages that drive at distributed processing. In my ambit, Java/Spark is currently the front-runner, but one or two major releases can change the market considerably -- see the buzz on Tensor, for instance, or the staying power of BeautifulSoup.
For experimentation, start with your comfort zone. There are plenty of good tools that interface well with Ruby and C++, as well. As long as you're using this to learn the underlying concepts, I believe that you'll do best with a language you already know: that gives you one less area of frustration in your learning curve.
Anony-Mousse and Patricio have given you very good points with which I totally concur. I'm working in Python and Scala, with Java and Spark just underneath.
Python has a very strong support from the Data Science Community, you have very good packages like Pandas and Python has a very good integration with Spark
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
Which free/open source machine/computer vision libraries do exist?
Summary of answers
Libraries
OpenCV
SimpleCV
VxL
VLFeat
LibCVD
iceWing
CImg
Motion
ccv
Other
RoboRealm Vision Software Applications
Wikipedia: List of SIFT implementations
Stack Overflow: What is the best image manipulation library
What language are you using? VLFeat seems like a pretty good one for C++ (and actively maintained), though I haven't actually used it. I'm mainly familiar with SIFT - there's a number of implementations listed at the bottom of the Wikipedia article.
libCVD http://savannah.nongnu.org/projects/libcvd
Cambridge Video Dynamics - Library for images, video capture, display, computer vision and more. Integrates well with TooN for a linear algebra framework. Language: C++
This is actively developed, and has a lot of useful features and algorithms, and generally those guys make things to work very fast.
It is LGPL.
It is possible to compile it on Win, Linux and MacOS X.
There is also an intention to provide port for Python with this one, to allow
to prototype Computer Vision algorithms with Python and SciPy very fast (i am not sure at which stage it is now, but there was a paper about it in a Python conference.)
If you are trying to do anything in real-time you should seriously consider libCVD.
For example,
PTAM (Parallel Tracking And Mapping) framework by Georg Klein uses this library.
RoboRealm compiled a huge list of vision software.
This older question mentions lots of libraries.
My university works with IceWing a rapid prototyping for vision tasks that is used to add tasks make chains out of them and have a GUI for seeing the results etc.
The library is widely used for vision related tasks in all the robots that are developed in Bielefeld
You can find the library here
If you are programing C++ you could check out CImg. While it may not be the most optimized library out there I have found it to be user friendly. It's also neat that it does not force you to deploy additional dlls.
If you need only motion detection, you could get away with Motion