o
    Me                     @   s   d Z ddlmZ ddlZddlZddlZddlZddlZddl	Z
ddlm  mZ g ZdZdZg dZdadadZdZd	d
 ZdddZeddddddd Zeddddddd Zdd Zeddddddd Zeddddddd ZdS )z
UCI Housing dataset.

This module will download dataset from
https://archive.ics.uci.edu/ml/machine-learning-databases/housing/ and
parse training set and test set into paddle reader creators.
    )print_functionNz:http://paddlemodels.bj.bcebos.com/uci_housing/housing.dataZ d4accdce7a25600298819f8e28e8d593)ZCRIMZZNZINDUSZCHASZNOXZRMZAGEZDISZRADZTAXZPTRATIOBZLSTATzYhttps://github.com/PaddlePaddle/book/raw/develop/01.fit_a_line/fluid/fit_a_line.fluid.tarZ 6e6dd637ccd5993961f68bfbde46090bc                 C   s   dd l }|d dd lm} | \}}t| }|jtt|| | ddd |	d |
tt|t |d|g |d |d	 tjd
sStd
 |jddd || d S )Nr   ZAggrcenter)coloralignzfeature scale   
   z./imagezimage/ranges.png0   )Zdpi)
matplotlibZuseZmatplotlib.pyplotZpyplotZsubplotslenbarlistrange	set_titleZxticksfeature_namesZxlimZset_figheightZset_figwidthospathexistsmakedirsZsavefigclose)maximumsminimumsr   ZpltZfigaxfeature_num r   JD:\Projects\ConvertPro\env\Lib\site-packages\paddle/dataset/uci_housing.pyfeature_range0   s&   




r      皙?c           	      C   s   t d ur
td ur
d S tj| dd}||jd | |}|jdd|jdd|jdd|jd  }}}t	j
|d D ]}|d d |f ||  || ||   |d d |f< q=t|jd | }|d | a ||d  ad S )N )sepr   )Zaxis   )UCI_TRAIN_DATAUCI_TEST_DATAnpfromfileZreshapeshapemaxminsumsixmovesr   int)	filenamer   ratiodatar   r   Zavgsioffsetr   r   r   	load_dataE   s   
6r4   z2.0.0zpaddle.text.datasets.UCIHousingr#   z>Please use new dataset API which supports paddle.io.DataLoader)ZsinceZ	update_tolevelreasonc                  C   "   t tjjtdt dd } | S )z
    UCI_HOUSING training set creator.

    It returns a reader creator, each sample in the reader is features after
    normalization and price number.

    :return: Training reader creator
    :rtype: callable
    uci_housingc                  s   *    t D ]} | d d | dd  fV  qd S Nr   )r$   dr   r   r   readeri      ztrain.<locals>.readerr4   paddledatasetcommondownloadURLMD5r=   r   r   r   trainW      rG   c                  C   r7   )z
    UCI_HOUSING test set creator.

    It returns a reader creator, each sample in the reader is features after
    normalization and price number.

    :return: Test reader creator
    :rtype: callable
    r8   c                  s   r9   r:   )r%   r;   r   r   r   r=      r>   ztest.<locals>.readerr?   rF   r   r   r   testp   rH   rI   c                  C   s:   t jjtdtd} tj| dd}t	 }|j
|d |S )Nr8   zfit_a_line.fluid.tarr   )mode)r   )r@   rA   rB   rC   FLUID_URL_MODELFLUID_MD5_MODELtarfileTarFiletempfilemkdtemp
extractall)Zparameter_tartardirpathr   r   r   fluid_model   s   
rT   c                   C   s(   t tjjtdt td dd fS )zh
    It returns just one tuple data to do inference.

    :return: one tuple data
    :rtype: tuple
    r8   r   Nr   )r4   r@   rA   rB   rC   rD   rE   r%   r   r   r   r   predict_reader   s   rU   c                   C   s   t jjtdt d S )Nr8   )r@   rA   rB   rC   rD   rE   r   r   r   r   fetch   s   rV   )r   r    )__doc__
__future__r   numpyr&   r,   rO   rM   r   Zpaddle.dataset.commonr@   Zpaddle.utils.deprecatedutils
deprecated__all__rD   rE   r   r$   r%   rK   rL   r   r4   rG   rI   rT   rU   rV   r   r   r   r   <module>   s`   



