How much programming should I know before learning machine learning?
I am a math major with zero coding experience. I know almost all data science jobs involve some machine learning. Should I just dive right into machine learning, or is there a certain amount of basics I need first?
>How much programming should I know before learning machine learning? None? ML is applied prob/stats. Let the code monkeys do the implementation crap.
Nathan Jackson
>how much programming who gives a shit >how much algorithms if you don't know this, you're dead in the water. Machine learning makes use of iterative paradigms, of which makes little sense from a math perspective. This can and will change with the rise of quantum computers, but let's be real, when are you ever going to be able to touch one?
Anyways, all you need to be able to do is think like a turing machine. Can you break down a problem such as "make me a sandwich" step by step, so that it can be done by retards on an assembly line? As long as you grasp this basic concept you have no limit (in machine learning). Much of the mathematical operations you know of have already been implemented, but it would be useful for you to know how they work (in a computer) so that you understand performance traps and whatnot.
John Rogers
>Veeky Forums-science.wikia.com/wiki/Computer_Science_and_Engineering Bare minimum: >Basic Programming & Data Structures >Algorithms Realistically >Various Programming Languages, Paradigms >Advanced Algorithms and Mathematical Optimization >Parallel Programming >Databases >Distributed Systems and Computing
Joshua Richardson
Basically none. "Programming" is separate, and relates to the engineered web of software that runs the world. Not some applied mathematics.
Elijah Davis
>...have no limit except for when you want to implement some parallel /concurrent algorithm
Cooper Russell
The more programming you now, the easier it will be for you to test things. You should at least be comfortable writing a full script where you can: >load data /read text files >iterate through the data using loops >handling matrices >make some plots
In practice, you should also be able to do debugging, which can be quite difficult for non computer people. And you should be able to install shit an set up your environment. Things like Matlab are easy as you basically only have to install one big program and it works. But things like python or C++ are non trivial to install, specially on Windows.
Finally, you should know how to "google stackoverflow" to find solutions for your errors.
>Cooking is applied chemistry. Let the kitchen monkeys do the chopping/grilling stuff.
Luis White
I kind of wanted to tell everyone else in this thread they weren't making any sense by pretending you didn't need to program, so thank you for doing that. That said: >things like python or C++ are non trivial to install, specially on Windows. ??????????????????????????????????????????????????????????????? No? Where are you getting that idea from? It's fucking Windows, everything's trivial to install on Windows. You download the installation executable and then you run it.
Leo Anderson
Setting up a working Python environment in Windows is not trivial. You have to download the correct version, install it, then run a bunch of terminal commands to create environments, install packages / libraries. If you want an IDE you also need to get one and configure it to run in your installation.
It is not insanely difficult to do, but for someone that has never programmed a line of code, it might be difficult to do. Specially compared to Matlab where you only install one thing, and run one application.
Ryan Brown
what
Lucas Hernandez
>But things like python or C++ are non trivial to install, specially on Windows
WinPython makes it easy. Visual Studio is easy to install but it's not that obvious how to use it with external libraries but it doesn't take too long to learn how to point it to the right headers and libs.
Brandon Walker
try to find an exe installer of 64 bit c++ compiler on windows.
Zachary Clark
There is no fucking machine learning it's a meme.
How the fuck can circuitry learn anything? It's just recognition of state in a loop.
Owen Peterson
ML is closer to biology than it is to any necessary coding study.
If you study logic, computer logic, and then evolutionary biology to a rudimentary degree, you should understand the principles of ML. Though, it also requires a good degree of imagination- it's fun in the end though!
Selection. Test a program against some 'selection pressure' for its 'fitness', or ability to achieve higher success (defined by the operator), along with some randomized element. It mimics real life evolution in a novel, and almost beautiful way, and leads to optimizing programs in a way that manually would be difficult to come to.
>WinPython makes it easy. I haven't even heard of that until now, I still don't see how the regular Python installation is at all difficult or complicated. >it's not that obvious how to use it with external libraries I don't see how it could be any more obvious than it already is. You download the DLL and register it and it'll show up as a reference you can add like anything else, or you can even just skip the registering step and use the browse option to add a reference to wherever you downloaded the DLL to.
>I still don't see how the regular Python installation is at all difficult or complicated.
It's installing the libraries which may depend on other libraries that's annoying.
Lucas Powell
>mingw
Absolutely disgusting. Just use a virtual machine and clang.
Mason Butler
>(in machine learning) all parallelizable and concurrent algorithms can be reduced to sequential.
Adrian Williams
That's a lot like saying you don't need a car because you can cover the same distance in a much longer amount of time by walking. I use VS, just wanted to add another example because I'm surprised anyone thought it was difficult to find and install a C++ compiler in the first place.
Blake Moore
When programming in Python, doing anything remotely complex suddenly means that your whole project is controlled by libraries that depend on other libraries, who may or may not support the same versions of other libraries. This then conflicts with the libraries you already have installed.
The solution to the centralization of packages is ironically the decentralization of packages. You create a virtual environment for your application (project) using venv or conda, which isolates your project and its dependencies from all of your other projects and their dependencies.
Of course, when you're first starting out programming as a data scientist, you don't want to be dealing with all of this technical debt, which is kind of ass.
Julian Taylor
This is one of the biggest headaches for machine learning with Python.
Machine learning libraries like scikit-learn require a number of libraries, and there are errors and problems that arise in trying to install them.
You can give Andrew NG's ML course on coursera a try, they don't seem to require much programmijg experience and they explain all the concepts you need anyways. I just completed week 2 and it seems you'll need math a lot more than programmingm The course uses Octave and that's pretty easy to set up. After that I'll probably try to apply my knowledge in python since python and R seem to work real well with this
Mason Bailey
Most of the successful ML doesnt use evolutionary algorithms though
David Nguyen
>setting up a development environment is trivial on Windows lol'd
Zachary Price
Oh? Maybe my rudimentary knowledge of ML isn't enough to weigh in then, my bad. I wasn't aware of this- I've only ever learned it from an evolutionary perspective. How does a machine learn if not by a selective process?
Caleb James
there's plenty of other ones, linear/logistic regression, k-means, gradient boosting etc etc. I'm not that educated in this subjec but I remember using genetic mutation for this once as well
Lincoln Jones
Oh, I think I see what you mean. Yeah, I think I understand- if it's testing any algorithm against an expected, however the means of learning (for example, changing via gradient boost), isn't it still evolutionary? I'm not well-versed at all in the formality of studying ML, so I might just be mixing paradigms here, but it seems like the process of selection is still present, but the process of mutation just differs based on the type of algorithm you're using to change behavior.
Ayden White
Gradient decent isnt evolutionary since theres nothing random about it you use back propagation to change the weight on the neurons. Yes the decent will be stochastic but theres a reason the loss function (the error of classification) is a convex function.
Theres also reinforcement learning which works by estimating a value function of states. The value of a state depends on how much reward the program can expect to get from following a policy when in that state. Even if the rewads and state transitions are random the changes to the value function isnt random.
Samuel Hill
Oh okay! Thanks user. I suppose I might as well pick up a fucking book on it. As a genetics guy, I'm so used to random change that it's a little more difficult for me to intuit non-random changes, though even biological systems have evolved non-random mutagenesis pathways (that aren't very well understood yet) that lead to trying to optimize the system faster than random mutation + natural selection can.
Know any good books for any nonrandom methods employed to produce effective ML? I really appreciate the insight here.
Matthew Evans
This book is really good for reinforcement learning atleast. mitpress.mit.edu/books/reinforcement-learning. Dont know any good books for supervised learning or unsupervised learning sadly.
Dominic Moore
? I really don't understand you people.
Camden Sanders
JUST GIVE MORE LAYERS
Jace Rodriguez
>Learn R
No human should be subjected to that hideous pile of shit. Its syntax is a crime.
Camden Collins
You fucking idiot.
Julian Rodriguez
the point is windows is a pile of shit
Robert Bailey
Take an intro-level programming class, then a data structures class. That should be all you need to get the ball rolling for machine learning. Other helpful stuff includes: >Discrete Math (should be easy if you're a math major) >Analysis of Algorithms >Functional Programming
t. CS kid currently enrolled in a machine learning class.
Jaxon Gomez
>t. CS kid Oh it shows
Bentley Turner
It's better not to use a proprietary OS for completely unrelated reasons, but no way is installing an IDE on Windows difficult. I'm still amazed anyone is agreeing with that sentiment. Having to deal with libraries that have prerequisites isn't some elaborate brain teaser, you find them and you download them.
Adam Russell
Step 1. Download Anaconda. Step 2. Run installer. That's literally it.
Isaac Flores
MORE
Aaron Parker
>installing unecessary bloat
Easton Ward
>Python with just scipy and related installed >550MB >WinPython with the bells >1.0GB