首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在为机器学习准备数据时定义值的范围

如何在为机器学习准备数据时定义值的范围
EN

Stack Overflow用户
提问于 2021-10-04 07:08:33
回答 1查看 27关注 0票数 0

我正在学习基本的机器学习分类问题,其中我正在为一个问题训练模型,其中如果age大于15,则输出将为1,如果age小于15,则输出将为0。我已经准备了一个csv文件,可以从这里https://drive.google.com/file/d/1FeDfhH2-xrqzFydVI_qGW_RkqlhGal6p/view?usp=sharing下载。

下面是我使用的代码:

代码语言:javascript
复制
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。请帮助。谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-10-04 07:49:02

在训练过程中,您的模型必须学习βo (偏差)和β(年龄特征的权重参数)的最佳值。您可以使用这行代码来获取模型学习到的βo和β的值。

代码语言:javascript
复制
print(np.hstack((clf.intercept_[:,None], clf.coef_)))

你的模型学习到的参数对于给定的输入"2“效果很好,你可以通过将参数和输入值放入logistic回归函数来自己尝试。此外,ML模型具有内插和外推的能力,这意味着您不必在每个可能的输入上训练模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69432101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档