Nahiyan14 commited on
Commit
50d1d52
·
verified ·
1 Parent(s): 132b218

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -0
app.py CHANGED
@@ -1,6 +1,9 @@
1
  import pandas as pd
2
  import numpy as np
3
  import joblib
 
 
 
4
  import gradio as gr
5
 
6
  # Define the feat_eng function
@@ -31,6 +34,50 @@ def feat_eng(df):
31
  ]
32
  return df[selected_features]
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  # Load the pipeline
35
  pipeline = joblib.load("pipeline.pkl")
36
 
 
1
  import pandas as pd
2
  import numpy as np
3
  import joblib
4
+ from sklearn.base import BaseEstimator, TransformerMixin
5
+ from sklearn.preprocessing import QuantileTransformer, StandardScaler
6
+ from sklearn.cluster import KMeans
7
  import gradio as gr
8
 
9
  # Define the feat_eng function
 
34
  ]
35
  return df[selected_features]
36
 
37
+ # Custom Quantile Transformer
38
+ class CustomQuantileTransformer(BaseEstimator, TransformerMixin):
39
+ def __init__(self, random_state=None):
40
+ self.random_state = random_state
41
+ self.quantile_transformer = QuantileTransformer(output_distribution='normal', random_state=self.random_state)
42
+
43
+ def fit(self, X, y=None):
44
+ self.quantile_transformer.fit(X)
45
+ return self
46
+
47
+ def transform(self, X):
48
+ X_transformed = self.quantile_transformer.transform(X)
49
+ return pd.DataFrame(X_transformed, columns=X.columns)
50
+
51
+ # Custom Standard Scaler
52
+ class CustomStandardScaler(BaseEstimator, TransformerMixin):
53
+ def __init__(self):
54
+ self.scaler = StandardScaler()
55
+
56
+ def fit(self, X, y=None):
57
+ self.scaler.fit(X)
58
+ return self
59
+
60
+ def transform(self, X):
61
+ X_transformed = self.scaler.transform(X)
62
+ return pd.DataFrame(X_transformed, columns=X.columns)
63
+
64
+ # KMeans Transformer
65
+ class KMeansTransformer(BaseEstimator, TransformerMixin):
66
+ def __init__(self, n_clusters=3, random_state=None):
67
+ self.n_clusters = n_clusters
68
+ self.random_state = random_state
69
+ self.kmeans = KMeans(n_clusters=self.n_clusters, random_state=self.random_state)
70
+
71
+ def fit(self, X, y=None):
72
+ self.kmeans.fit(X)
73
+ return self
74
+
75
+ def transform(self, X):
76
+ cluster_labels = self.kmeans.predict(X)
77
+ X_clustered = X.copy()
78
+ X_clustered['Cluster'] = cluster_labels
79
+ return X_clustered
80
+
81
  # Load the pipeline
82
  pipeline = joblib.load("pipeline.pkl")
83