2017-11-04 115 views
-2

语言:Python。 我创建了一个模型并将其与joblib一起保存。现在我想加载它来预测新数据---但是数据是以字符串的形式表示的(数值在数值中,但是特征是用“,”分隔的一行代替,而不是作为一个大数据框在列中)我这样做?我知道我可以发送单个输入并获得单个预测,但我不知道如何执行此操作。如何接受我的机器学习模型的非csv输入?

我用 https://machinelearningmastery.com/save-load-machine-learning-models-python-scikit-learn/ 作为参考,但我不是太清楚的最后一位(加载模型)

# Splitting the dataset into the Training set and Test set 
from sklearn.cross_validation import train_test_split 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) 

# Feature Scaling 
from sklearn.preprocessing import StandardScaler 
sc = StandardScaler() 
X_train = sc.fit_transform(X_train) 
X_test = sc.transform(X_test) 

# Fitting K-NN to the Training set 
from sklearn.neighbors import KNeighborsClassifier 
classifier = KNeighborsClassifier(n_neighbors = 5, metric = 'minkowski', p = 2) 
classifier.fit(X_train, y_train) 

# Predicting the Test set results 
y_pred = classifier.predict(X_test) 

# save the model to disk 
filename = 'test_model.sav' 
joblib.dump(classifier, filename) 

loaded_model = joblib.load(filename) 
result = loaded_model.score(X_test, y_test) 
print(result) 

*我没有张贴代码

+0

请出示你的代码。 – gommb

+0

输入字符串是什么样的? – akilat90

+0

什么是test_model.sav数据格式样子? –

回答

0

的数据预处理部分如果你的问题是如何从一个字符串输入负载输入向量X_test,您可以使用np.fromstring

input_string = '34,144,13' 
X_test=np.fromstring(input_string, dtype=int, sep=',') 

为了让模型对上述X_test预测,你可以使用:

loaded_model = joblib.load(filename) 
prediction= loaded_model.predict(X_test) 
+0

谢谢,我会试试看 – dawson

相关问题