The propose of this library is to allow the data analysis process more easy and automatic.

## Project description

===============================
SciKit Data
===============================

.. image:: https://img.shields.io/pypi/v/scikit-data.svg
:target: https://pypi.python.org/pypi/scikit-data

.. image:: https://img.shields.io/travis/OpenDataScienceLab/skdata.svg
:target: https://travis-ci.org/OpenDataScienceLab/skdata

:alt: Documentation Status

Conda package current release info
==================================

:target: https://anaconda.org/conda-forge/scikit-data

:target: https://anaconda.org/conda-forge/scikit-data

=================

The propose of this library is to allow the data analysis process more easy and automatic.

The data analysis process is composed of following steps:

* The statement of problem
* Cleaning the data
* Normalizing the data
* Transforming the data
* Exploratory statistics
* Exploratory visualization
* Predictive modeling
* Visualizing and interpreting your results

(Cuesta, Hector and Kumar, Sampath; 2016)

This project contemplates the follow features:

* Data Preparation
* Data Exploration
* Prepare data to Predictive modeling
* Visualizing results
* Reproducible data analysis

Data Preparation
----------------

Data preparation is about how to obtain, clean, normalize, and transform the data into an
optimal dataset, trying to avoid any possible data quality issues such as invalid, ambiguous,
out-of-range, or missing values.

(...)

Scrubbing data, also called data cleansing, is the process of correcting or
removing data in a dataset that is incorrect, inaccurate, incomplete,
improperly formatted, or duplicated.

(...)

In order to avoid dirty data, our dataset should possess the following characteristics:

* Correct
* Completeness
* Accuracy
* Consistency
* Uniformity

(...)

**Data transformation**

Data transformation is usually related to databases and data warehouses where values from
a source format are extract, transform, and load in a destination format.

Extract, Transform, and Load (ETL) obtains data from various data sources, performs some
transformation functions depending on our data model, and loads the resulting data into
the destination.

(...)

Some important transformations:

* Text facet and Clustering
* Numeric fact
* Replace

**Data reduction methods**

Data reduction is the transformation of numerical or alphabetical digital information
derived empirically or experimentally into a corrected, ordered, and simplified form.
Reduced data size is very small in volume and comparatively original, hence, the storage
efficiency will increase and at the same time we can minimize the data handling costs and
will minimize the analysis time also.

We can use several types of data reduction methods, which are listed as follows:

* Filtering and sampling
* Binned algorithm
* Dimensionality reduction

(Cuesta, Hector and Kumar, Sampath; 2016)

Data exploration
----------------

Data exploration is essentially looking at the processed data in a graphical or statistical form
and trying to find patterns, connections, and relations in the data. Visualization is used to
provide overviews in which meaningful patterns may be found.

(...)

The goals of exploratory data analysis (EDA) are as follows:

* Detection of data errors
* Checking of assumptions
* Finding hidden patters (like tendency)
* Preliminary selection of appropriate models
* Determining relationships between the variables

(...)

The four types of EDA are univariate nongraphical, multivariate nongraphical, univariate
graphical, and multivariate graphical. The nongraphical methods refer to the calculation of
summary statistics or the outlier detection. In this book, we will focus on the univariate and

(Cuesta, Hector and Kumar, Sampath; 2016)

**Outlier Detection**

Two outlier detection method should be used, initially, for SkData are:

* IQR;
* Chauvenet.

Another methods should be implemented soon [1].

Prepare data to Predictive modeling
-----------------------------------

From the galaxy of information we have to extract usable hidden patterns and trends using
relevant algorithms. To extract the future behavior of these hidden patterns, we can use
predictive modeling. Predictive modeling is a statistical technique to predict future
behavior by analyzing existing information, that is, historical data. We have to use proper
statistical models that best forecast the hidden patterns of the data or
information (Cuesta, Hector and Kumar, Sampath; 2016).

SkData, should allow you to format your data to send it to some predictive library
as scikit-learn.

Visualizing results
-------------------

In an explanatory data analysis process, simple visualization techniques are very useful for
discovering patterns, since the human eye plays an important role. Sometimes, we have to
generate a three-dimensional plot for finding the visual pattern. But, for getting better
visual patterns, we can also use a scatter plot matrix, instead of a three-dimensional plot. In
practice, the hypothesis of the study, dimensionality of the feature space, and data all play
important roles in ensuring a good visualization technique (Cuesta, Hector and Kumar, Sampath; 2016).

Quantitative and Qualitative data analysis
------------------------------------------

Quantitative data are numerical measurements expressed in terms of numbers.

Qualitative data are categorical measurements expressed in terms of natural language
descriptions.

Quantitative analytics involves analysis of numerical data. The type of the analysis will
depend on the level of measurement. There are four kinds of measurements:

* Nominal data has no logical order and is used as classification data.
* Ordinal data has a logical order and differences between values are not constant.
* Interval data is continuous and depends on logical order. The data has standardized differences between values, but do not include zero.
* Ratio data is continuous with logical order as well as regular intervals differences between values and may include zero.

Qualitative analysis can explore the complexity and meaning of social phenomena. Data for
qualitative study may include written texts (for example, documents or e-mail) and/or
audible and visual data (digital images or sounds).

(Cuesta, Hector and Kumar, Sampath; 2016)

Reproducibility for Data Analysis
---------------------------------

A good way to promote reproducibility for data analysis is store the
operation history. This history can be used to prepare another dataset
with the same steps (operations).

Books used as reference to guide this project:
----------------------------------------------

Some other materials used as reference:
---------------------------------------

- https://github.com/rsouza/MMD/blob/master/notebooks/3.1_Kaggle_Titanic.ipynb
- https://github.com/agconti/kaggle-titanic/blob/master/Titanic.ipynb
- https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/kaggle/titanic.ipynb

Installing scikit-data
======================

Using conda
-----------

Installing scikit-data from the conda-forge channel can be achieved by adding conda-forge to your channels with:

.. code-block:: console

$conda config --add channels conda-forge Once the conda-forge channel has been enabled, scikit-data can be installed with: .. code-block:: console$ conda install scikit-data

It is possible to list all of the versions of scikit-data available on your platform with:

.. code-block:: console

$conda search scikit-data --channel conda-forge Using pip --------- To install scikit-data, run this command in your terminal: .. code-block:: console$ pip install skdata

If you don't have pip_ installed, this Python installation guide_ can guide
you through the process.

.. _pip: https://pip.pypa.io
.. _Python installation guide: http://docs.python-guide.org/en/latest/starting/installation/

----------------

References
----------

* CUESTA, Hector; KUMAR, Sampath. Practical Data Analysis. Packt Publishing Ltd, 2016.

**Electronic materials**

* [1] http://www.datasciencecentral.com/profiles/blogs/introduction-to-outlier-detection-methods

=======
History
=======

0.1.0 (2016-08-14)
------------------

* First release on PyPI.

## Project details

Uploaded source