Skip to content

Instantly share code, notes, and snippets.

@bynarlogic
Last active August 6, 2020 18:14
Show Gist options
  • Save bynarlogic/e088119a3b44ebcec3746561fcdc962d to your computer and use it in GitHub Desktop.
Save bynarlogic/e088119a3b44ebcec3746561fcdc962d to your computer and use it in GitHub Desktop.
Basic Logistic Regression Model for Predictive Maintenance Problem
import pickle
from sklearn.linear_model import LogisticRegression
import pandas
import json
from sklearn import preprocessing
from sklearn import metrics
from sklearn.model_selection import train_test_split
with open('training_data.json') as json_data:
data = json.load(json_data)
df = pandas.DataFrame(data)
X = df[['temp', 'vibration', 'current', 'noise']]
def normalize_features(X):
transformer = preprocessing.Normalizer().fit(X)
return transformer.transform(X).tolist()
def encode_labels(y):
enc = preprocessing.LabelEncoder()
enc.fit(y)
return [enc.transform(y).tolist(), enc.classes_.tolist()]
X = normalize_features(X)
y, encoding = encode_labels(df[['state']])
train_X, val_X, train_y, val_y = train_test_split(X, y, random_state=1)
regressor = LogisticRegression(solver='liblinear')
regressor.fit(train_X, train_y)
y_pred = regressor.predict(val_X)
accuracy = metrics.accuracy_score(y_pred, val_y)
print(accuracy)
file_handler = open('factory_linear_regression.pkl', 'wb')
payload = {"model": regressor, "encoding": encoding}
pickle.dump(payload, file_handler)
file_handler.close()
print("pickled model")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment