2017-11-04 111 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

相關問題