Spaces:
Sleeping
Sleeping
File size: 2,206 Bytes
bd27e5d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import accuracy_score
class FactoryPredictor:
def __init__(self):
self.model = LogisticRegression()
self.le_diagnosis = LabelEncoder()
self.temperature = 0
self.pressure = 0
def train(self, csv_train='train.csv', csv_test='test.csv'):
# Load the train data
data_train = pd.read_csv(csv_train)
# Encode categorical variables
data_train['diagnosis'] = self.le_diagnosis.fit_transform(data_train['diagnosis'])
# Split features and target
X_train = data_train[
['temperature', 'pressure']]
y_train = data_train['diagnosis']
# Train the model
self.model.fit(X_train, y_train)
# Load the test data
data_test = pd.read_csv(csv_test)
# Encode categorical variables
data_test['diagnosis'] = self.le_diagnosis.fit_transform(data_test['diagnosis'])
# Split features and target
X_test = data_test[
['temperature', 'pressure']]
y_test = data_test['diagnosis']
# Evaluate the model
y_pred = self.model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model accuracy: {accuracy:.2f}")
def inform_temperature(self, temperature):
self.temperature = temperature
if self.pressure > 0:
return self.predict(self.temperature, self.pressure)
return 'N'
def inform_pressure(self, pressure):
self.pressure = pressure
if self.temperature > 0:
return self.predict(self.temperature, self.pressure)
return 'N'
def predict(self, temperature, pressure):
# Create a DataFrame with the same feature names as the training data
input_data = pd.DataFrame(
[[temperature, pressure]],
columns=['temperature', 'pressure'])
# Make prediction
prediction = self.model.predict(input_data)
# Decode prediction
diagnosis = self.le_diagnosis.inverse_transform(prediction)[0]
return diagnosis
|