【发布时间】:2021-11-24 15:35:23
【问题描述】:
我正在学习基本的机器学习分类问题,我正在为一个问题训练模型,如果age 大于15,则输出将为1,如果age 小于15,输出将是0。我准备了一个csv文件,可以从这里下载https://drive.google.com/file/d/1FeDfhH2-xrqzFydVI_qGW_RkqlhGal6p/view?usp=sharing
下面是我正在使用的代码:
from sklearn.linear_model import LogisticRegression
import pandas as pd
import numpy as np
data = pd.read_csv("test1.csv")
data.head()
X = data[['Age']]
Y = data["Output"]
train = data[:(int((len(data) * 0.8)))]
test = data[(int((len(data) * 0.8))):]
clf = LogisticRegression()
train_x = np.array(train[['Age']])
train_y = np.array(train["Output"])
clf.fit(train_x, train_y)
test_x = np.array(test[['Age']])
test_y = np.array(test["Output"])
test_x2 = np.array([[16]])
Y_pred = clf.predict(test_x2)
print(Y_pred)
这工作正常。在text_x2 中,如果我给出值 16,它会显示输出为 1,这是正确的。如果我将测试值设为 12,它将显示输出为 0,这是正确的。如果我将测试值设为 2,它仍然显示 0,这是正确的,但我的问题是我还没有将模型训练为年龄为 2,那么它为什么对 2 工作正常。
我还想知道我们如何定义数据中的范围。例如,如果年龄是 0-15 岁,那么输出应该是 1。如果年龄是 16-30,那么输出应该是 2。如果年龄是 31-45,那么输出应该是 3。请帮忙。谢谢
【问题讨论】:
标签: python machine-learning logistic-regression