将字符串转换为Python中KNeighborsClassifier支持的类型

将字符串转换为Python中KNeighborsClassifier支持的类型,python,sockets,knn,Python,Sockets,Knn,我已将KNeighborsClassifier的一个对象转换为字符串,以便将其从客户端发送到服务器。当我在服务器端使用接收到的数据时,我发现它是一个不可比较的数据类型 客户端的程序 knn=KNeighborsClassifier(n_neighbors=k) clf = knn.fit(X_train_tfidf, twenty_train.target) sock.sendall(str(clf)) 这里,clf的类型是KNeighborsClassifier,它被转换成字符串。有没有办法

我已将KNeighborsClassifier的一个对象转换为字符串,以便将其从客户端发送到服务器。当我在服务器端使用接收到的数据时,我发现它是一个不可比较的数据类型

客户端的程序

knn=KNeighborsClassifier(n_neighbors=k)
clf = knn.fit(X_train_tfidf, twenty_train.target)
sock.sendall(str(clf))
这里,clf的类型是KNeighborsClassifier,它被转换成字符串。有没有办法将字符串转换回KNeighborsClassifier类型。
提前感谢

阅读以下内容:


否。为什么您假设
KNeighborsClassifier
上的
str
的结果能够转换回原始对象?一般来说,情况并非如此。@juanpa.arrivillaga实际上我们需要向服务器发送
clf
。但是如果不进行转换,我们就无法发送它,因为我们需要一个字符串或字符缓冲区对象来发送。有没有办法在不转换成字符串的情况下发送它?发送一个pickle。或者以其他方式序列化。我们无法发送序列化的数据。错误是:
sock.sendall(pickle.dumps(clf))文件“/usr/lib/python2.7/socket.py”,第228行,在meth return getattr(self.\u sock,name)(*args)socket.error:[Errno 104]由对等方重置连接
这是套接字的问题,而不是模型的持久性问题。您能提供更多详细信息吗?我通过引用[]实现了客户机-服务器交互。我可以序列化数据,但无法发送数据。它显示了上述错误。我的问题与更多详细信息在此处表达:[。请帮助我。我的项目完全依赖于此。
import pickle
clf = KNeighborsClassifier(n_neighbors=k)
clf.fit(X_train_tfidf, twenty_train.target)
sock.sendall(pickle.dumps(clf))

# On the other side of the socket
import pickle
clf = pickle.loads(socket_input)