aberrant80
aberrant80

Reputation: 13016

What is data mining from a developer's perspective?

I can find the technical explanation of what data mining is in a book or on Wikipedia, but I'm wondering what sort of development does it exactly involve? Is it more about using tools or more about writing tools? Is it really any much different from other domains when it comes to R&D?

Upvotes: 12

Views: 2251

Answers (7)

ybakos
ybakos

Reputation: 8630

Data Mining is the process of discovering interesting patterns in large amounts of data. It is not querying data, which is just what user Treb describes (sorry Treb).

To understand DM from a developer's perspective, you should read the book Programming Collective Intelligence by Toby Segaran.

Upvotes: 22

Matt
Matt

Reputation: 1573

You really ought to change the accepted answer on this question so it doesn't mislead those who come across it.

Saying that querying a database IS data mining because "[h]ow would you discover any pattern in your data without querying first?" is like saying opening your car door is driving because "how else would you be able to drive somewhere without opening the car door first."

You can read your data out of a text file if you want. My first data mining assignment used data sets from the UCI repository and those are almost all text files.

If you want to learn about data mining start by looking up clustering and classification. Learn about decision trees and rule based classification. Then look at k-nearest-neighbor and k-means. After that if you really want to see what data mining is all about look at Chameleon, DBScan, and Support Vector Machines. Don't necessarily learn the minutiae of the last three (they're pretty complex and math heavy) but understanding the abstract idea of what happens will tell you all you need to know in order to use the many tools and libraries that are available for each strategy.

These are only the algorithms that popped into my head just now. There are so many others that I don't recall or don't even know yet.

Upvotes: 2

Treb
Treb

Reputation: 20299

On the development level, data mining is just another database application, but with a huge amount of data.

The mining itself is done by running specific queries on the database. It's in the creation of the queries where the important work is done. They of course depend on the data model, and on the hypotheses, what sort of trends the customer expects to find. Therefore, the fine tuning of the queries usually can't be done in development, but only once the system is live and you have live data. Then the user can test his hypotheses and adapt the queries to show him the trends he is looking for.

So from a dev point of view, data maining is about

  1. Managing large sets of data in your client (one query may return 100.000 rows of data)

  2. Providing the user (who may know nothing about SQL or relational databases in general) with an effective way to modify his queries and view the results.

Upvotes: -3

fortran
fortran

Reputation: 76157

I think it's more about using off the shelf tools rather than developing your own. An academic example of that kind of tools might be WEKA. Of course, you still have to know what algorithms use, how to preprocess data (very important this part), etc.

In R&D I don't have much idea, but it should be like almost everything: maths, statistics, more maths...

Upvotes: 0

Vicky
Vicky

Reputation: 13244

In my experience (I'm a former data miner :-)), it's a mixture of using tools and writing tools. A lot of the time, the tools you need to analyse the particular data set don't exist, so you have to write them yourself first. It can be very interesting but you often need quite a different approach to the sort of programming I do now (embedded wireless), for example.

Upvotes: 3

poop a birck
poop a birck

Reputation: 2057

Data mining is about searching large quantities of data for hidden patterns. Web 2.0 example: News corp uses its site myspace.com as a large data mine to determine what movies and products to promote. They write software to identify trends in the data that it's users post to the site. News corp does this to gather information useful for advertising campaigns and market predictions. It's different from other domains of R&D in that from a data givers perspective its passive. Rather than going out on the street and asking people in person what movies they are likely to see this summer and other such questions, the data mining tools sort out these things by analyzing data given by users voluntarily.

Wikipedia actually does have a pretty good article on it: - http://en.wikipedia.org/wiki/Data_mining

Upvotes: 1

S M Kamran
S M Kamran

Reputation: 4503

Data Mining as I say is finding patterns or trends from given data. A developer perspective might be in applications like Anti Money Laundring... Where given a pattern you will search data for that given pattern. One other use is in Projection Softwares... where you project a result or outcome in future against a heuristic by studying recognizing the current trend from data.

Upvotes: 0

Related Questions