【发布时间】:2019-10-05 13:26:10
【问题描述】:
我正在尝试对一个小型数据集执行逻辑回归,其中每个实例都用一个分类(男性,女性)变量和一个连续变量(频率在 [0,1] 之间)和因变量(标签)表示是 0 或 1。因此任务是一个二元分类问题。下面我分享5-6个例子:
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
我的问题是:在使用 scikit 的逻辑回归执行逻辑回归时,我应该对连续变量和分类变量进行不同的编码吗?这些变量中的任何一个都需要一些特殊的编码吗?或者是以下正确的方法吗?
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)
当我这样做时,回归函数是否理解 Gender 是一个分类变量而 Frequency 是一个连续变量?
编辑: 当然,我需要将字符串转换为浮点值。 (例如 "Male" -> 0 , "Female" -> 1)我要问的是“除此之外我还需要做些什么吗?我问这个是因为我看到了类似的东西 here 但线程还没有结束因此我无法确定答案的有效性。
【问题讨论】:
-
你有没有想过这个问题?我也在想同样的事情,希望你能有一些见解。
标签: python machine-learning scikit-learn logistic-regression