python - 来自不同(测试)文件的一个代码数据与一个文件中的所有数据有何不同?
问题描述
我遇到的所有示例总是方便地将数据放在一个文件中,以显示 train_test_split 的工作原理(或任何模型)。但很多时候,训练数据和测试数据是两个独立的文件。所以,我制作了一个超基本的逻辑回归训练文件和测试文件,由两列组成,“年龄”,“保险”。并命名df的df_train,df_test。
我意识到 df_test 没有接受过培训,因此出现了错误,但是……这不是重点吗?我知道model.predict(X_test)
不会抛出错误,但这是基于训练数据而不是测试数据。
警告的话,当你老了,尝试学习新事物时,就会发生这种情况。不要变老。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df[['age']],df.insurance,test_size=0.1)
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
model.predict(df_test)
谢谢,
老屁
解决方案
正如你所说:
训练文件和测试文件由两列组成,“年龄”、“保险”。
因此,如果测试文件同时包含年龄和保险列并按原样使用,则由于训练和预测之间的输入不匹配,预测功能将不起作用。model.predict 也只期望自变量(在你的情况下是它的年龄),格式如下:
预测(自我,X)[来源]¶
Predict class labels for samples in X.
Parameters:
X : array_like or sparse matrix, shape (n_samples, n_features)
Samples.
现在进行修改:
model.predict(df_test["age"].values)
编辑:试试这个:
from sklearn.model_selection import train_test_split
X = df["age"].values
y = df["insurance"].values
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.1)
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
model.predict([list(df_test["age"].values)])
推荐阅读
- python - AssertEqual 在比较两个相同的 int 对象时失败
- apache - 如何让 Apache 返回 404 而不是 502
- python-3.x - 如何避免 Jupyter Notebook 中的内存错误
- spring-batch - 由于 JDBC 异常而无法运行 Batch Job
- docker - 老板 | HTTP/1.1 400 没有主机匹配服务器名称 localhost
- html - 如何从数据库中获取数据并将其分离到文本框中?角
- c# - 从字典中检索记录的最快方法包含 100 万条记录
- odoo-12 - Odoo pos 收据定制
- python - 无法扩展 docker 容器
- jquery - 搜索栏在 boostrap 崩溃中超出下拉菜单