[Issue-Id:RICAPP-204] Bump version to 1.0.0 and push to staging area
[ric-app/ad.git] / ad / ad_model / ad_model.py
diff --git a/ad/ad_model/ad_model.py b/ad/ad_model/ad_model.py
deleted file mode 100644 (file)
index ed2dbd4..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# ==================================================================================
-#  Copyright (c) 2020 HCL Technologies Limited.
-#
-#  Licensed under the Apache License, Version 2.0 (the "License");
-#  you may not use this file except in compliance with the License.
-#  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-# ==================================================================================
-
-import joblib
-
-
-class modelling(object):
-    r""" Filter dataframe based on paramters that were used to train model
-    use transormer to transform the data
-    load model and predict the label(normal/anomalous)
-
-    Parameters:
-    data:DataFrame
-    """
-
-    def __init__(self, data):
-
-        with open('params', 'rb') as f:
-            cols = joblib.load(f)
-        if all(cols.isin(data.columns)):
-            self.data = data[cols]
-        else:
-            print(data.columns, cols)
-
-        self.transformation()
-
-    def transformation(self):
-        """ load transformer to transform data """
-
-        sc = joblib.load('scale')
-        self.data = sc.transform(self.data)
-
-    def predict(self, name):
-        """ Load the saved model and return predicted result.
-        Parameters
-        .........
-        name:str
-            name of model
-
-        Return
-        ......
-        pred:int
-            predict label on a given sample
-
-        """
-
-        model = joblib.load(name)
-        pred = model.predict(self.data)
-        pred = [1 if p == -1 else 0 for p in pred]
-        return pred
-
-
-class CAUSE(object):
-    r""""Rule basd method to find degradation type of anomalous sample
-
-    Attributes:
-    normal:DataFrame
-        Dataframe that contains only normal sample
-    """
-
-    def __init__(self, db):
-        db.read_data('train')
-        self.normal = db.data[['rsrp', 'rsrq', 'rssinr', 'throughput', 'prb_usage', 'ue-id']]
-
-    def cause(self, sample):
-        """ Filter normal data for a particular ue-id to compare with a given sample
-            Compare with normal data to find and return degradaton type
-        """
-        normal = self.normal[self.normal['ue-id'] == sample.iloc[0]['ue-id']].drop('ue-id', axis=1)
-        param = self.find(sample, normal.max())
-        return param
-
-    def find(self, sample, Range):
-        """ store if a particular parameter is below threshold and return """
-
-        deg = []
-        if sample.iloc[0]['throughput'] < Range['throughput']*0.5:
-            deg.append('Throughput')
-        if sample.iloc[0]['rsrp'] <= Range['rsrp']-20:
-            deg.append('RSRP')
-        if sample.iloc[0]['rsrq'] <= Range['rsrq']-20:
-            deg.append('RSRQ')
-        if sample.iloc[0]['rssinr'] <= Range['rssinr']-25:
-            deg.append('RSSINR')
-        if sample.iloc[0]['prb_usage'] <= Range['prb_usage']*0.5:
-            deg.append('prb_usage')
-        if len(deg) == 0:
-            deg = False
-        else:
-            deg = ' '.join(deg)
-        return deg
-
-
-def ad_predict(df):
-    """
-        Call Predict method to predict whether a given sample is normal or anomalous
-    """
-
-    db = modelling(df)
-    db_df = db.predict('model')  # Calls predict module and store the result into db_df
-    del db
-    return db_df