machinelearningstuff
machinelearningstuff
Machine Learning
2 posts
Don't wanna be here? Send us removal request.
machinelearningstuff · 8 years ago
Text
First Programs When Learning a New Language
There are several languages that are key to using in Machine Learning:
Elixir - the, “pipeline,” for robust, large amounts of data.
There are several, “rule of thumb” programs which are noted as being important to start out with writing:
Basic: Hello World
Python - Done.
Ruby - Done.
Javascript - Done.
Matlab - Done.
C++ - Done.
Elixir - Done.
Type casting: return int with reversed digits of int input
Elixir - Done.
Map: return a dict of letter counts in a string
Elixir
Recursion: Fibonacci
Pattern matching: extract phone numbers from a text file
DB: parse CSV and store in (no)SQL db
Elixir
Net: API endpoint that returns aggregate results from multiple external API request (use some sort of concurrency for requests and/or aggs?)
Data structures, text input: tic tac toe, battleship, or some similar game
Graphics, visual input: flood fill, line drawing, A* pathing, or somesuch
Data statistics: calc mean, max, min, 95% from a time series dataset for various time intervals (and graph them?)
Second opinion on the above:
DB
This one is library dependent. Most languages don't have something like linq. A lot of the DSLs that map SQL queries to your favourite language are at times not very performant as well. Many times, you end up using plain SQL or whatever NOSQL depending on how good the library is.
Net
Also library dependent unless you want to get into low level sockets which most people don't even remotely understand. On top of this, depending on what framework you're using (because no one makes a server from scratch nowadays when there are entire organizations dedicated to developing a framework) the library is different.
Tic-tac-toe/battleship
I work in software and I can imagine how i'd implement this, but I've never done it. Seriously have never found a reason to ever do this. This is some intro to cs shit. That's like asking "How to implement quicksort in X lang". Most of the time wont need it.
Graphics
I never work with graphics. I don't know jack shit about graphics. I'm a server side developer/security analyst and I don't need to know this shit. I'd hardly make this a must.
IMO, the entire problem with this thread and responses is you only need to memorize specifics once you work in something very often. I can sniff a network with scapy without looking at any references but if you ask me how to do this in C I have no idea, but give me a few hrs I could get it to work.
What people need to understand is that knowledge of concepts matter more than individual implementation. If you understand concepts from the ground up, you can work with any implementation.
More Advanced Things...
Consume an API ( REST / SOAP )
Create an API ( REST / SOAP )
Implement a few data structures ( Linked List / ArrayList / Binary Search Tree )
Implement a few algorithms ( A*, DFS, BFS, etc. )
Create some bot ( Discord, Reddit )
Scrape some website that doesn't have a public-facing API ( Craigslist )
Various side projects related / tied into your personal hobbies ( for me, cars )
Section 1. 2nd nature Basics: these should be things you don't have to think about
Simple Types. If you can't deal with words (Strings), numbers (integers, doubles, floats etc) and binary options (booleans), you cant really do anything useful for non technical humans to understand
Type Manipulation. if you cant convert 11 (as a string) into 11 (as an integer) then you cannot do a calculation with written numbers. If you don't know how
Logical loops and conditions. (e.g If, Else If, For Each, While, Switch Case etc. ) if you cant do this you cannot program anything useful... and for gods sake don't create a potentially infinite loop in your program.
I/O or Read/Write. if you cant take inputs from somewhere and provide an output, what's the point?!
Functions/methods and overloads. Learn how to create them and reuse them as often as you can whenever a similar problem presents itself.
Error handling AND LOGGING. no function should be without a try catch [turns out this is fairly specific to my specific application specifications]. use what you learned doing I/O and output the errors to a log file so you can see where things are going wrong, even if they don't cause unexpected behaviour.
Section 2. Necessary basics: these might require a little more thought in terms of how you optimise certain things, but definitely not challenging on a day to day basis.
Complex Types. Lists, collections, multidimensional arrays. all very useful when dealing with lots of data
Interfacing: how to create reusable interfaces to be used throughout your application
Classes and inheritance and class structure: This will form the basic structure of all your programs
I/O 2 Database transactions. so how to query SQL to get your data, and how to update tables with the results.
Section 3. stuff you should know but might want to look up occasionally
learn a structural framework (MVVM, MVC)
Front end (Xaml if you're doing WPF, HTML/CSS + a bit of JS for web)
Section 4 Everything Else:
Google.... no i'm serious, google has the answer to every question you could possibly want to ask about programming. so unless you are doing something groundbreaking and new, google will likely have your answer. so long as you have a solid grasp of everything i put above you should be able to integrate any solution provided on the web into your own code. but it's up to you to make it as efficient as possible...
0 notes
machinelearningstuff · 9 years ago
Text
Why is Machine Learning ‘Hard’?
Stanford AI Blog - 
http://ai.stanford.edu/~zayd/why-is-machine-learning-hard.html
Tumblr media
0 notes