python - 使用逻辑回归进行分类 - 鸢尾花数据集
问题描述
我正在在线进行有关物流回归的随机练习。它使用来自 Iris 数据集的样本数据。通常,当我们使用 load_iris() 数据集时,我们使用 X 中的数据和 y 中的目标来预测模型。然而,这个特定的练习只包含 4 列(见下面的数据)。我尝试对 y (手动)使用随机值,并且可以预测模型,但是,它无法验证检查输出长度的部分。
输入记录数 - 50 预期输出长度 - 50
据我所知,我们预测模型基于训练集,而训练集不应该是完整的数据。我很困惑这个问题是错误的还是我在这里缺乏知识。
在下面给出了输入文件和我的代码。感谢您对此的任何建议。
==================================================== ======
问题 -
1. 预测存储在 中的数据的标签test_iris.csv
。
2.将预测以列表的形式存储到变量list_ans
中。注意:列表编号是整数类型。
输入文件 - test_iris.csv
sepal length (cm),sepal width (cm),petal length (cm),petal width (cm)
5.5,4.2,1.4,0.2
5.4,3.9,1.3,0.4
5,3.5,1.6,0.6
7.2,3,5.8,1.6
7,3.2,4.7,1.4
6.3,2.7,4.9,1.8
6.2,2.2,4.5,1.5
5.5,2.3,4,1.3
6.3,2.5,5,1.9
4.9,3,1.4,0.2
6.5,3,5.2,2
5.2,4.1,1.5,0.1
5.4,3.4,1.5,0.4
7.7,2.8,6.7,2
6.1,3,4.9,1.8
6.4,2.9,4.3,1.3
5.6,3,4.1,1.3
5.7,2.9,4.2,1.3
4.4,3.2,1.3,0.2
6.1,2.6,5.6,1.4
5.5,2.4,3.8,1.1
5.3,3.7,1.5,0.2
5.5,2.6,4.4,1.2
6.7,3.1,4.4,1.4
6.2,2.9,4.3,1.3
5.6,2.9,3.6,1.3
5,2.3,3.3,1
5.8,2.8,5.1,2.4
5,3,1.6,0.2
4.5,2.3,1.3,0.3
6.5,3,5.8,2.2
5.5,2.5,4,1.3
6.5,3,5.5,1.8
5.8,2.7,3.9,1.2
6.8,3,5.5,2.1
5.7,2.8,4.5,1.3
6.7,3.1,4.7,1.5
5.9,3,4.2,1.5
5.6,2.7,4.2,1.3
7.7,3,6.1,2.3
5.1,3.7,1.5,0.4
4.6,3.6,1,0.2
4.7,3.2,1.6,0.2
6.7,3,5,1.7
5.6,3,4.5,1.5
4.3,3,1.1,0.1
7.1,3,5.9,2.1
5.8,2.7,4.1,1
4.9,3.1,1.5,0.2
5.1,2.5,3,1.1
代码 -
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
iris = pd.read_csv('test_iris.csv')
dataset = iris.values
iris_X = dataset[:,0:4]
iris_y = [0., 1., 0., 1., 1., 1., 1., 0., 0., 1., 0., 0., 0., 1., 0., 1., 0.,
0., 1., 0., 1., 1., 0., 0., 0., 0., 1., 1., 1., 0., 0., 1., 1., 1.,
1., 0., 1., 1., 1., 1., 0., 1., 1., 0., 1., 1., 1., 0., 0., 0.]
X_train, X_test, y_train, y_test = train_test_split(iris_X, iris_y,
test_size =0.20,random_state=100)
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
list_ans= y_pred
print(list_ans)
print(len(list_ans))
解决方案
这是测试集:它没有任何标签。这是您在训练集上训练模型后用来测试模型的方法。你在某处有一个 train_iris.csv 文件吗?
如果没有,您可以使用导入训练数据(150 行)
from sklearn import datasets
iris = datasets.load_iris()
X_train = iris.data
y_train = iris.target
推荐阅读
- mysql - 想要在单行中获取重复数据
- oracle - 在 Oracle 中使用 Merge 来使用 Joins 更新父表
- sikuli - 我们可以从 sikuli 创建独立的 exe 文件吗?
- python - 绘制自制的分段函数出了问题
- scala - 多个目标的 Sbt 组装
- c++ - 检查注册表项是否链接到(或副本)另一个
- sql-server - SQL 2016 中用于返回 XML 的 URL
- android - 得到 NetworkInfo 状态:DISCONNECTED/BLOCKED 即使手机已连接
- ios - 提供的注册令牌未注册
- docker - AspNet Core 不在 docker ["ASPNETCORE_ENVIRONMENT=Production"] 上的生产环境中运行