首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用连续变量和分类变量作为逻辑回归算法的输入?

如何使用连续变量和分类变量作为逻辑回归算法的输入?
EN

Stack Overflow用户
提问于 2019-05-18 13:43:52
回答 1查看 2.1K关注 0票数 1

我试图在一个小数据集上进行逻辑回归,其中每个实例用一个分类变量(男性、女性)和一个连续变量(频率在0,1之间)和因变量(标签)分别表示为0或1。因此,任务是一个二进制分类问题。下面我分享5-6个例子:

代码语言:javascript
复制
import pandas as pd 
df = pd.read_table('dataset.csv',sep=',')
df.head()


Gender  Frequency  Label
0    Male       0.10      0
1  Female       0.23      1
2  Female       0.35      1
3  Female       0.21      0
4    Male       0.15      1

我的问题是:在执行逻辑回归时,我是否应该对我的连续变量和分类变量进行不同的编码?这些变量中的任何一个都需要特殊的编码吗?或者下面的方法是正确的?

代码语言:javascript
复制
from sklearn.cross_validation import train_test_split
X = df[['Gender','Frequency']] # Features
y = df.Label # Target variable
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=0)

from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
# fit the model with data
logreg.fit(X_train,y_train)

#
y_pred=logreg.predict(X_test)

当我这样做时,回归函数是否理解性别是一个范畴变量,频率是一个连续变量?

编辑:当然,我需要将字符串转换为浮动值。(例如。“男性”-> 0,“女性”-> 1)我要问的是,“我需要做的不是这个吗?我问这个是因为我看到了类似的here,但是线程还没有结束,所以我不能确定答案的有效性。”

EN

回答 1

Stack Overflow用户

发布于 2019-05-19 03:20:19

在使用logistic回归时,您应该尝试一次编码。您现在正在做的是标签编码,它与ml模型(如决策树或随机森林)完美地工作,但在逻辑回归中可能会引起问题,因为模型可能认为“女性”,即"1“比"0”更重要。

在熊猫中查找滑雪或虚拟变量中的一个热编码。这两种功能都将为男性和女性创建一个单独的专栏。当行中有性别男性时,男性列中的值将变为1,而女性列中的值将变为0,相反则相同。

代码语言:javascript
复制
Male  Female  Frequency  Label
0    1   0    0.10      0
1    0   1    0.23      1
2    0   1    0.35      1
3    0   1    0.21      0
4    1   0    0.15      1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56199522

复制
相关文章

相似问题

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