Pandas 分类变量回归

Pandas 分类变量回归,pandas,regression,one-hot-encoding,Pandas,Regression,One Hot Encoding,我想用一个分类变量实现回归。我的数据集如下所示: item_id rating gender 1 4 F 2 3 M 3 2 M model = ols("rating ~ C(gender) + genre", data = data).fit() 输出: =========================================

我想用一个分类变量实现回归。我的数据集如下所示:

item_id    rating     gender
1            4          F
2            3          M
3            2          M

model = ols("rating ~ C(gender) + genre", data = data).fit()
输出:

========================================================================================
                           coef    std err          t      P>|t|      [0.025      0.975]
----------------------------------------------------------------------------------------
Intercept                3.5175      0.012    295.935      0.000       3.494       3.541
C(gender)[T.M]          -0.0021      0.008     -0.257      0.797      -0.018       0.014
genre[T.Adventure]      -0.0275      0.017     -1.622      0.105      -0.061       0.006
genre[T.Animation]       0.0064      0.027      0.240      0.810      -0.046       0.058
genre[T.Childrens]       0.0134      0.020      0.657      0.511      -0.027       0.054
genre[T.Comedy]          0.0293      0.014      2.130      0.033       0.002       0.056
虽然这给出了一个正确的输出,但它只是给出了性别之间的交互作用,我想分别得到每个性别的输出,以便看到女性性别和男性性别之间的交互作用

我试着用分类变量对性别进行编码:

item_id    rating     gender
1            4          0
2            3          1
3            2          1

但是它仍然不能提供所需的输出。

您提供的数据帧有一个名为
gender
的列,但您的模型包含一个名为
genre
的列(法语)。这是一个输入错误吗?使用glm通用线性模型和二项式系列您提供的数据框架有一个名为
性别
的列,但您的模型包含一个名为
流派
的列(法语)。这是打字错误吗?使用glm通用线性模型和二项式族
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_curve
from sklearn.metrics import roc_auc_score
from sklearn.metrics import confusion_matrix

item_id =[1,2,3]
rating=[4,3,2]
gender=[0,1,1]

df=pd.DataFrame({'item_id':item_id, 'rating':rating,'gender':gender})

X=df[['rating']]
y=np.array(df['gender'])

logreg=LogisticRegression(C=100)
logreg.fit(X,y)
y_predictions=logreg.predict_proba(X)[:,1]
auc=roc_auc_score(y, y_predictions)

print("Area under the curve: ", auc)

print(y_predictions)

y_pred2 = logreg.predict(X)

cm = confusion_matrix(y,y_pred2)
print(cm)

probable outcomes:
[0.05623715 0.94397376 0.99979014]
confusion matrix
[[1 0]
 [0 2]]

data frame
   item_id  rating  gender
0        1       4       0
1        2       3       1
2        3       2       1