使用逻辑回归进行分类 - Iris 数据集
Classification using logistic regression - Iris dataset
我正在做一个关于物流回归的在线随机练习。它使用 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
我正在做一个关于物流回归的在线随机练习。它使用 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