o
    NPjB                     @   sT   d dl Zd dlmZ g dZdd Zdd Zdd	 Zed
kr(edZ	e
d dS dS )    N)IsolationForest)request_counthigh_velocity	duplicategeo_mismatchbad_uac                 C   s,   t | }|t }tddd}|| |S )Ng?*   )contaminationrandom_state)pdread_csvFEATURE_COLUMNSr   fit)csv_filedatafeaturesmodel r   1/home/djax/ivt_ai_plugin/scoring/anomaly_model.pytrain_anomaly_model   s   

r   c                 C   s"   t j|gtd}| |d }|S )N)columnsr   )r   	DataFramer   decision_function)r   r   feature_datadecision_scorer   r   r   get_anomaly_score   s   r   c                 C   s&   d| d  }t dtd|}t|dS )N2   d   r      )maxminround)score
risk_scorer   r   r   normalize_anomaly_score*   s   
r$   __main__zdata/ml_features.csvz+IsolationForest model trained successfully.)pandasr   sklearn.ensembler   r   r   r   r$   __name__r   printr   r   r   r   <module>   s    	