Since 2004, data mining researchers at West Virginia University have been involved in an open source data mining experiment. Researchers
submitting to the PROMISE conference on predictive models in software engineering are encouraged to offer not just conclusions,
but also the data they used to generate those conclusions. The result is nearly 100 data sets, all on-line,
freely available for download~\footnote{\url{http://promisedata.org/data}}. 

An important aspect of this thesis is that after {\em data sharing} comes {\em experiment
sharing}; i.e. repositories should grow to include not just data, but the code
required to run experiments over that data. This simplifies the goal of letting other researchers 
repeat, or even extend, data mining experiments of others. Repeating experiments is not only essential 
in confirming previous results, but also in providing an insightful understanding of the fundamentals 
involving those experiments. Thus, it is important to have a prepared set of clearly defined and operational experiments that can be utilized in order to achieve similar prior results.     

OURMINE was developed to help graduate students at West Virginia University document and share their 
data mining experiments.
The toolkit 
uses UNIX shell scripting. As a result, any tool
that can be executed from a command prompt can be seamlessly combined with other tools.

For example, \fig{clean} shows a simple bash
function used in OURMINE to clean text data before conducting any
experiments using it. Line 5 passes text from a file, performing
tokenization, removing capitals and unimportant words found in a
stop list, and then in the next line performing Porter's stemming
algorithm on the result. 

OURMINE allows connectivity between tools
written in various languages as long as there is always a command-line
API available for each tool.
For example, the modules of \fig{clean} are written using BASH,
Awk and Perl.  

\begin{figure}
{\scriptsize\begin{verbatim}
 1 clean(){
 2    local docdir=$1
 3    local out=$2
 
 4   for file in $docdir/*; do
 5      cat $file | tokes | caps | stops $Lists/stops.txt > tmp 
 6	     stems tmp >> $out 
 7	     rm tmp
 8   done
 9 }\end{verbatim}}
\caption{An OURMINE function to clean text documents and collect the results. 
$Tokes$ is a tokenizer; $caps$ sends all words to lower case;
$stops$ removes the stop works listed in "\$Lists/stops.txt"; and
$stems$ performs Porter's stemming algorithm (removes confusing suffixes).
 }\label{fig:clean}
\end{figure}

\section{Statement of Thesis}

OURMINE stands as a satisfactory data mining toolkit for data mining

\bi
\item researchers due to experiment reproducibility and sharing
\item instructors due to the ease at which concepts can be taught through succinct code
\item novices due to rapid yet knowledge-enhancing experiment building using widely applicable scripting languages
\ei

\section{Contributions of this Thesis}

	This thesis contributes to existing work in the analysis of open source data mining environments. By first examining many already-used toolkits available to the open source community, and then highlighting general strong points as well as weaknesses of these environments, it is hoped that the scripting-based approach taken by OURMINE will be accepted for not only academic endeavors, but practical, industrial applications as well.  
	

\section{Papers from this Work}

\bi
\item Adam Nelson and Tim Menzies and Greg Gay. {\em Sharing Experiments Using Open Source Software}. In Software: 
Practice and Experience, 2nd. round review.
2009-2010
\item Ashutosh Nandeshwar and Tim Menzies and Adam Nelson. {\em Learning Patterns of University Student Retention}. In 
Expert Systems with Applications, recently submitted.
2010
\ei


\section{Structure of this Thesis}

The remaining chapters of this thesis are structured follows:

\bi
\item Chapter \ref{related} explores a variety of widely used, open source data mining tools 
\item Chapter \ref{ourmine} introduces more of the specifics of OURMINE. Here exists a description of the environment, comparisons of textual versus visual programming, learning and teaching from within the environment, etc.
\item Chapter \ref{cs-sampling} uses a case study to show how OURMINE can be used by practicioners to "tune" a treatment to yield the best results.
\item Chapter \ref{cs-defect} contains a case study in which OURMINE was used to verify current results on cross-company defect prediction using relevancy filters.
\item Chapter \ref{cs-retention} details a case study of OURMINE in which the toolkit was used to predict university student retention.
\item Chapter \ref{cs-component} examines a case study in which OURMINE was used to determine if learning on highly-dense software components provided any benefits over the standard methods.
\item Chapter \ref{cs-cluster} describes a case study that examines empirical comparisons of clustering methods used in text mining via OURMINE.
\item Chapter \ref{conclusion} concludes this thesis through a summarization of the varying aspects of OURMINE and also potential future work for the toolkit.
\ei 
