Сделать прогноз на основе данных - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь предсказать, является ли URL вредоносным (1) или доброкачественным (0). Вот мой код:

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import confusion_matrix, classification_report, accuracy_score

data =  pd.read_csv('final.csv', error_bad_lines=False)
print('Data size: ', data.shape[0])

for column in data.columns:
    if data['url'].dtype == type(object):
        le = LabelEncoder()
        data['url'] = le.fit_transform(data['url'])

def train_test_rmse(x = data.values,y = data['label'].values):

    # Split into training and testing dataset 80:20 ratio
    X_train, X_test, y_train, y_test = train_test_split(x, y, test_size = 0.2,random_state=123)
    logit = LogisticRegression()
    logit.fit(X_train, y_train)

    y_pred = logit.predict(X_test)

    print(confusion_matrix(y_test, y_pred))
    print(classification_report(y_test, y_pred))
    print(accuracy_score(y_test, y_pred))

train_test_rmse()

Я хочу сделать прогноз с учетом введенных пользователем данных. Я не знаю, как это сделать. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 18 октября 2019

импортируйте все необходимые пакеты

  1. train_test_rmse предназначено для обучения и тестирования модели

  2. predit предназначено для прогнозированиявходной контент.

self.logit может быть доступен через ваш класс.

class prediction:
def train_test_rmse(self, x=data.values, y=data['label'].values):
    # Split into training and testing dataset 80:20 ratio
    X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=123)
    # this self.logit is accessible through out your class.
    self.logit = LogisticRegression()
    self.logit.fit(X_train, y_train)
    y_pred = self.logit.predict(X_test)
    print(confusion_matrix(y_test, y_pred))
    print(classification_report(y_test, y_pred))
    print(accuracy_score(y_test, y_pred))

def predict(self, input):
    predicted = self.logit.predict(input)
    print(predicted)

вызов из основной функции

if __name__=='__main__':
pred = prediction()
pred.train_test_rmse()
# ur input df
input = # read input
pred.predict(input)
...