我有一个Python脚本,给定一个观察到的类(X)和一些二进制列(Y),它预测一个类(Pred\ux)。然后它预测每个类的概率(Prob(1)等)。我怎样才能得到只有被观察类(Prob(X))的概率?你知道吗
import pandas as pd
from sklearn.naive_bayes import BernoulliNB
BNB = BernoulliNB()
# Data
df_1 = pd.DataFrame({'X' : [1,2,1,1,1,2,1,2,2,1],
'Y1': [1,0,0,1,0,0,1,1,0,1],
'Y2': [0,0,1,0,0,1,0,0,1,0],
'Y3': [1,0,0,0,0,0,1,0,0,0]})
# Split the data
df_I = df_1 .loc[ : , ['Y1', 'Y2', 'Y3']]
S_O = df_1['X']
# Bernoulli Naive Bayes Classifier
A_F = BNB.fit(df_I, S_O)
# Predict X
A_P = BNB.predict(df_I)
df_P = pd.DataFrame(A_P)
df_P.columns = ['Pred_X']
# Predict Probability
A_R = BNB.predict_proba(df_I)
df_R = pd.DataFrame(A_R)
df_R.columns = ['Prob_1', 'Prob_2']
# Join
df_1 = df_1.join(df_P)
df_1 = df_1.join(df_R)
感谢@jezrael:
相关问题 更多 >
编程相关推荐