Python 拟合模型时的概率图形模型错误
我试图用样本数据拟合一个样本概率图形模型。 在模型中拟合数据时,我遇到类型错误。示例代码如下所示:Python 拟合模型时的概率图形模型错误,python,anaconda,modeling,graph-modelling-language,Python,Anaconda,Modeling,Graph Modelling Language,我试图用样本数据拟合一个样本概率图形模型。 在模型中拟合数据时,我遇到类型错误。示例代码如下所示: import numpy as np import pandas as pd from pgmpy.models import BayesianModel data = np.random.uniform(low=0, high=2, size=(1000, 4)).astype('float') data data = pd.DataFrame(data, columns=['cost',
import numpy as np
import pandas as pd
from pgmpy.models import BayesianModel
data = np.random.uniform(low=0, high=2, size=(1000, 4)).astype('float')
data
data = pd.DataFrame(data, columns=['cost', 'quality',
'location',
'no_of_people'])
train = data[:750]
test = data[750:].drop('no_of_people', axis=1)
restaurant_model = BayesianModel(
[('location', 'cost'),
('quality', 'cost'),
('location', 'no_of_people'),
('cost', 'no_of_people')])
restaurant_model.fit(train)
我遇到以下错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-173-8e3a85cb8b56> in <module>()
----> 1 restaurant_model.fit(train)
C:\Users\pranav.waila\AppData\Local\Continuum\Anaconda3\lib\site-packages\pgmpy\models\BayesianModel.py in fit(self, data, estimator_type)
568 estimator = estimator_type(self, data)
569
--> 570 cpds_list = estimator.get_parameters()
571 self.add_cpds(*cpds_list)
572
C:\Users\pranav.waila\AppData\Local\Continuum\Anaconda3\lib\site-packages\pgmpy\estimators\MLE.py in get_parameters(self)
64 state_counts = state_counts.reindex(sorted(state_counts.index))
65 cpd = TabularCPD(node, self.node_card[node],
---> 66 state_counts.values[:, np.newaxis])
67 cpd.normalize()
68 parameters.append(cpd)
C:\Users\pranav.waila\AppData\Local\Continuum\Anaconda3\lib\site-packages\pgmpy\factors\CPD.py in __init__(self, variable, variable_card, values, evidence, evidence_card)
137 raise TypeError("Values must be a 2D list/array")
138
--> 139 super(TabularCPD, self).__init__(variables, cardinality, values.flatten('C'))
140
141 def __repr__(self):
C:\Users\pranav.waila\AppData\Local\Continuum\Anaconda3\lib\site-packages\pgmpy\factors\Factor.py in __init__(self, variables, cardinality, values)
98
99 if values.dtype != int and values.dtype != float:
--> 100 raise TypeError("Values: Expected type int or type float, got ", values.dtype)
101
102 if len(cardinality) != len(variables):
TypeError: ('Values: Expected type int or type float, got ', dtype('int64'))
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1个餐厅\u模型安装(列车)
C:\Users\pranav.waila\AppData\Local\Continuum\Anaconda3\lib\site packages\pgmpy\models\BayesianModel.py拟合(self、data、估计器类型)
568估计器=估计器类型(自身,数据)
569
-->570 cpds_list=估计器。获取_参数()
571.自行添加CPD(*CPD清单)
572
C:\Users\pranav.waila\AppData\Local\Continuum\Anaconda3\lib\site packages\pgmpy\estimators\MLE.py in get\u parameters(self)
64状态计数=状态计数.reindex(已排序(状态计数.index))
65 cpd=表格RCPD(节点,自节点\卡[node],
--->66状态计数值[:,np.newaxis])
67 cpd.normalize()
68.附加参数(cpd)
C:\Users\pranav.waila\AppData\Local\Continuum\Anaconda3\lib\site packages\pgmpy\factors\CPD.py in\uuuuuuuu init\uuuuuuuuuuuu(自我、变量、变量卡、值、证据、证据卡)
137 raise TypeError(“值必须是二维列表/数组”)
138
-->139 super(tablercpd,self)。\uuuu init\uuuuu(变量、基数、值。展平('C'))
140
141定义报告(自我):
C:\Users\pranav.waila\AppData\Local\Continuum\Anaconda3\lib\site packages\pgmpy\factors\factors.py in uuuuuu init_uuuuu(self、变量、基数、值)
98
99 if values.dtype!=int和values.dtype!=浮动:
-->100 raise TypeError(“值:预期类型int或类型float,got”),Values.dtype)
101
102如果len(基数)!=len(变量):
TypeError:('Values:Expected type int或type float,get',dtype('int64'))
这是包装中的一个错误。我打开了问题的bug(),这是包装中的一个错误。我打开了问题的bug()