首页 > 解决方案 > 使用逻辑回归进行分类 - 鸢尾花数据集

问题描述

我正在在线进行有关物流回归的随机练习。它使用来自 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))

标签: pythonlinear-regression

解决方案


这是测试集:它没有任何标签。这是您在训练集上训练模型后用来测试模型的方法。你在某处有一个 train_iris.csv 文件吗?

如果没有,您可以使用导入训练数据(150 行)

from sklearn import datasets

iris = datasets.load_iris()

X_train = iris.data
y_train = iris.target 

推荐阅读