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