Как использовать обученную модель для прогнозирования новых массивов данных - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу знать, как использовать линейный классификатор в Python на Jupyter для прогнозирования новых данных (в массивах)

Я использовал модель линейного классификатора Tensorflow на python в Jupyter. Я обучил свою модель, но теперь, когда я пытаюсь использовать новый массив для предсказаний, вещи просто не работают. Не могли бы вы показать мне, что мне нужно сделать, чтобы решить это? Я попытался перечислить, я в диапазоне, список, печать, и все, что я могу придумать. Не могли бы вы помочь мне?

import pandas as pd
file="C:\\Users\\user\\pima-indians-diabetes-database.zip"
diabetes=pd.read_csv(file)
diabetes.replace(0, diabetes.replace([0], [None]))

diabetes.head(5)
diabetes.columns
normalize = ['Pregnancies','Glucose','BloodPressure','SkinThickness','Insulin','BMI', 'DiabetesPedigreeFunction']
diabetes[normalize]=diabetes[normalize].apply(lambda x:(x-x.min())/(x.max())-x.min())
import tensorflow as tf
nump = tf.feature_column.numeric_column('Pregnancies')
glucval = tf.feature_column.numeric_column('Glucose')
bp = tf.feature_column.numeric_column('BloodPressure')
intsk = tf.feature_column.numeric_column('SkinThickness')
insulinval = tf.feature_column.numeric_column('Insulin')
bmival = tf.feature_column.numeric_column('BMI')
dbf = tf.feature_column.numeric_column('DiabetesPedigreeFunction')
ageval  = tf.feature_column.numeric_column('Age')
assignedg = tf.feature_column.categorical_column_with_vocabulary_list('Group',['A','B','C','D'])
import matplotlib.pyplot as plt
%matplotlib inline
diabetes['Age'].hist(bins=20)
x_data = diabetes.drop('Outcome',axis=1)
labels = diabetes['Outcome']
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(x_data,labels,test_size=.037, random_state=89)
input_func=tf.estimator.inputs.pandas_input_fn(x=X_train,y=y_train
                                           ,batch_size=5
                                            ,num_epochs= 1250
                                           ,shuffle=True)

age_buckets = tf.feature_column.bucketized_column(ageval, boundaries=[20,30,40,50,60,70,80])                                         
feat_cols = ([nump,glucval,bp,intsk,insulinval,bmival,dbf,age_buckets])
model=tf.estimator.LinearClassifier(feature_columns=feat_cols,n_classes=2)
model.train(input_fn=input_func,steps=1250)
xdata = ([5,80,80,35,200,40,1.5,60]) 

Просто чтобы уточнить, "xdata" - это новые данные, которые я хочу предсказать. Я просто хочу, чтобы программа выводила ноль или единицу, вот и все, но я продолжаю получать ошибки за все, что я пытаюсь. Неважно, как я могу это сделать - пока это просто. Я не знаю, какой метод использовать для этого, пожалуйста, помогите. Позже я хочу использовать Flask, чтобы превратить это в сайт, не могли бы вы показать мне это, если возможно, тоже? Спасибо.

...