@@ -962,107 +962,12 @@ <h1>Source code for pgmpy.models.LinearGaussianBayesianNetwork</h1><div class="h
962962< span class ="sd "> >>> pred = model.predict(df_missing)</ span >
963963< span class ="sd "> >>> list(pred.columns)</ span >
964964< span class ="sd "> ['x3']</ span >
965- < span class ="sd "> >>> print(pred.values)</ span >
966- < span class ="sd "> [[ 8.01138228]</ span >
967- < span class ="sd "> [13.61181367]</ span >
968- < span class ="sd "> [ 8.70432782]</ span >
969- < span class ="sd "> [ 3.71719153]</ span >
970- < span class ="sd "> [ 8.1509597 ]</ span >
971- < span class ="sd "> [ 6.24976516]</ span >
972- < span class ="sd "> [12.2121776 ]</ span >
973- < span class ="sd "> [ 6.01448446]</ span >
974- < span class ="sd "> [ 5.49139518]</ span >
975- < span class ="sd "> [ 9.23748708]</ span >
976- < span class ="sd "> [17.92545478]</ span >
977- < span class ="sd "> [ 3.24653756]</ span >
978- < span class ="sd "> [ 8.78452503]</ span >
979- < span class ="sd "> [10.3678509 ]</ span >
980- < span class ="sd "> [ 5.33405765]</ span >
981- < span class ="sd "> [ 9.09319649]</ span >
982- < span class ="sd "> [10.66717573]</ span >
983- < span class ="sd "> [10.9290793 ]</ span >
984- < span class ="sd "> [ 6.48827753]</ span >
985- < span class ="sd "> [12.7339279 ]</ span >
986- < span class ="sd "> [ 0.79803275]</ span >
987- < span class ="sd "> [ 9.69425692]</ span >
988- < span class ="sd "> [ 5.27994359]</ span >
989- < span class ="sd "> [ 8.80268511]</ span >
990- < span class ="sd "> [ 4.31081468]</ span >
991- < span class ="sd "> [10.76081874]</ span >
992- < span class ="sd "> [10.05810137]</ span >
993- < span class ="sd "> [ 5.93859429]</ span >
994- < span class ="sd "> [ 4.10420816]</ span >
995- < span class ="sd "> [ 7.74976272]</ span >
996- < span class ="sd "> [11.67397411]</ span >
997- < span class ="sd "> [ 9.63141961]</ span >
998- < span class ="sd "> [ 1.72775337]</ span >
999- < span class ="sd "> [ 2.2725024 ]</ span >
1000- < span class ="sd "> [ 8.44578257]</ span >
1001- < span class ="sd "> [ 7.602702 ]</ span >
1002- < span class ="sd "> [10.53853647]</ span >
1003- < span class ="sd "> [11.31860773]</ span >
1004- < span class ="sd "> [ 8.00975022]</ span >
1005- < span class ="sd "> [ 9.22702521]</ span >
1006- < span class ="sd "> [ 3.64868722]</ span >
1007- < span class ="sd "> [13.67114269]</ span >
1008- < span class ="sd "> [15.01854326]</ span >
1009- < span class ="sd "> [ 6.37691191]</ span >
1010- < span class ="sd "> [13.14971548]</ span >
1011- < span class ="sd "> [ 2.75588544]</ span >
1012- < span class ="sd "> [16.93490848]</ span >
1013- < span class ="sd "> [ 2.97009486]</ span >
1014- < span class ="sd "> [ 5.64759205]</ span >
1015- < span class ="sd "> [ 7.74788815]</ span >
1016- < span class ="sd "> [ 9.86681496]</ span >
1017- < span class ="sd "> [ 3.40585598]</ span >
1018- < span class ="sd "> [ 9.89093876]</ span >
1019- < span class ="sd "> [ 4.08221225]</ span >
1020- < span class ="sd "> [15.617452 ]</ span >
1021- < span class ="sd "> [ 4.14029637]</ span >
1022- < span class ="sd "> [ 8.59698685]</ span >
1023- < span class ="sd "> [11.89439088]</ span >
1024- < span class ="sd "> [ 0.44433568]</ span >
1025- < span class ="sd "> [ 8.42879464]</ span >
1026- < span class ="sd "> [14.45268215]</ span >
1027- < span class ="sd "> [10.62681186]</ span >
1028- < span class ="sd "> [10.76349781]</ span >
1029- < span class ="sd "> [16.0269725 ]</ span >
1030- < span class ="sd "> [ 8.83836337]</ span >
1031- < span class ="sd "> [ 5.30435055]</ span >
1032- < span class ="sd "> [ 7.63843465]</ span >
1033- < span class ="sd "> [13.18359343]</ span >
1034- < span class ="sd "> [ 0.92282836]</ span >
1035- < span class ="sd "> [ 3.35438779]</ span >
1036- < span class ="sd "> [11.61943098]</ span >
1037- < span class ="sd "> [ 4.52648267]</ span >
1038- < span class ="sd "> [11.18074558]</ span >
1039- < span class ="sd "> [ 4.86137485]</ span >
1040- < span class ="sd "> [ 8.49295864]</ span >
1041- < span class ="sd "> [ 7.07209154]</ span >
1042- < span class ="sd "> [ 6.85461911]</ span >
1043- < span class ="sd "> [ 3.96748462]</ span >
1044- < span class ="sd "> [ 8.3311032 ]</ span >
1045- < span class ="sd "> [ 8.04499479]</ span >
1046- < span class ="sd "> [ 7.27919516]</ span >
1047- < span class ="sd "> [ 4.77660469]</ span >
1048- < span class ="sd "> [-0.33549712]</ span >
1049- < span class ="sd "> [ 2.65815359]</ span >
1050- < span class ="sd "> [15.58173105]</ span >
1051- < span class ="sd "> [12.24334129]</ span >
1052- < span class ="sd "> [ 7.60858529]</ span >
1053- < span class ="sd "> [ 8.0673818 ]</ span >
1054- < span class ="sd "> [10.30962944]</ span >
1055- < span class ="sd "> [ 9.73931168]</ span >
1056- < span class ="sd "> [ 5.46107107]</ span >
1057- < span class ="sd "> [16.95243925]</ span >
1058- < span class ="sd "> [ 2.80408287]</ span >
1059- < span class ="sd "> [12.23910532]</ span >
1060- < span class ="sd "> [14.03289339]</ span >
1061- < span class ="sd "> [ 6.26117488]</ span >
1062- < span class ="sd "> [ 7.37468791]</ span >
1063- < span class ="sd "> [13.3850798 ]</ span >
1064- < span class ="sd "> [ 6.83845881]</ span >
1065- < span class ="sd "> [ 5.59547155]]</ span >
965+ < span class ="sd "> >>> print(pred.values[:5])</ span >
966+ < span class ="sd "> [[11.44002506]</ span >
967+ < span class ="sd "> [13.55810512]</ span >
968+ < span class ="sd "> [ 9.17133321]</ span >
969+ < span class ="sd "> [ 6.65304283]</ span >
970+ < span class ="sd "> [ 4.12695995]]</ span >
1066971< span class ="sd "> """</ span >
1067972
1068973 < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="fm "> __init__</ span > < span class ="p "> (</ span >
@@ -1577,10 +1482,10 @@ <h1>Source code for pgmpy.models.LinearGaussianBayesianNetwork</h1><div class="h
15771482< span class ="sd "> Simple forward sampling</ span >
15781483
15791484< span class ="sd "> >>> model.simulate(n_samples=3, seed=42) # doctest: +NORMALIZE_WHITESPACE</ span >
1580- < span class ="sd "> x1 x2 x3</ span >
1581- < span class ="sd "> 0 -3.307168 -4.270673 9.688070 </ span >
1582- < span class ="sd "> 1 -7.195367 -9.833986 9.493212 </ span >
1583- < span class ="sd "> 2 -0.324284 -4.959026 8.758940 </ span >
1485+ < span class ="sd "> x1 x2 x3</ span >
1486+ < span class ="sd "> 0 2.218868 -8.050502 14.301856 </ span >
1487+ < span class ="sd "> 1 4.762259 -10.423011 10.516473 </ span >
1488+ < span class ="sd "> 2 1.511362 -5.509290 9.458886 </ span >
15841489
15851490< span class ="sd "> Sampling with intervention (do)</ span >
15861491
@@ -1593,10 +1498,10 @@ <h1>Source code for pgmpy.models.LinearGaussianBayesianNetwork</h1><div class="h
15931498< span class ="sd "> Sampling with evidence</ span >
15941499
15951500< span class ="sd "> >>> model.simulate(n_samples=3, seed=42, evidence={"x1": 2.0}) # doctest: +NORMALIZE_WHITESPACE</ span >
1596- < span class ="sd "> x1 x2 x3</ span >
1597- < span class ="sd "> 0 2.0 -6.753790 8.242987 </ span >
1598- < span class ="sd "> 1 2.0 -5.284287 12.763190 </ span >
1599- < span class ="sd "> 2 2.0 1.133549 -3.023892 </ span >
1501+ < span class ="sd "> x1 x2 x3</ span >
1502+ < span class ="sd "> 0 2.0 -2.781132 3.661179 </ span >
1503+ < span class ="sd "> 1 2.0 -0.998195 7.819889 </ span >
1504+ < span class ="sd "> 2 2.0 -11.804141 11.897602 </ span >
16001505
16011506< span class ="sd "> Sampling with both intervention and evidence</ span >
16021507
@@ -1699,7 +1604,7 @@ <h1>Source code for pgmpy.models.LinearGaussianBayesianNetwork</h1><div class="h
16991604 < span class ="c1 "> # Step 4: Sample according to evidence</ span >
17001605 < span class ="k "> if</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> evidence</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span >
17011606 < span class ="n "> df</ span > < span class ="o "> =</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> DataFrame</ span > < span class ="p "> (</ span >
1702- < span class ="n "> rng</ span > < span class ="o "> .</ span > < span class ="n "> multivariate_normal</ span > < span class ="p "> (</ span > < span class ="n "> mean</ span > < span class ="o "> =</ span > < span class ="n "> mean</ span > < span class ="p "> ,</ span > < span class ="n "> cov</ span > < span class ="o "> =</ span > < span class ="n "> cov</ span > < span class ="p "> ,</ span > < span class ="n "> size</ span > < span class ="o "> =</ span > < span class ="n "> n_samples</ span > < span class ="p "> ),</ span >
1607+ < span class ="n "> rng</ span > < span class ="o "> .</ span > < span class ="n "> multivariate_normal</ span > < span class ="p "> (</ span > < span class ="n "> mean</ span > < span class ="o "> =</ span > < span class ="n "> mean</ span > < span class ="p "> ,</ span > < span class ="n "> cov</ span > < span class ="o "> =</ span > < span class ="n "> cov</ span > < span class ="p "> ,</ span > < span class ="n "> size</ span > < span class ="o "> =</ span > < span class ="n "> n_samples</ span > < span class ="p "> , </ span > < span class =" n " > method </ span > < span class =" o " > = </ span > < span class =" s2 " > "cholesky" </ span > < span class =" p " > ),</ span >
17031608 < span class ="n "> columns</ span > < span class ="o "> =</ span > < span class ="n "> variables</ span > < span class ="p "> ,</ span >
17041609 < span class ="p "> )</ span >
17051610
@@ -1712,7 +1617,9 @@ <h1>Source code for pgmpy.models.LinearGaussianBayesianNetwork</h1><div class="h
17121617 < span class ="n "> mean_cond</ span > < span class ="o "> =</ span > < span class ="n "> mean_cond</ span > < span class ="p "> [:,</ span > < span class ="n "> sorted_indices</ span > < span class ="p "> ]</ span >
17131618 < span class ="n "> cov_cond</ span > < span class ="o "> =</ span > < span class ="n "> cov_cond</ span > < span class ="p "> [</ span > < span class ="n "> sorted_indices</ span > < span class ="p "> ][:,</ span > < span class ="n "> sorted_indices</ span > < span class ="p "> ]</ span >
17141619
1715- < span class ="n "> samples_missing</ span > < span class ="o "> =</ span > < span class ="n "> rng</ span > < span class ="o "> .</ span > < span class ="n "> multivariate_normal</ span > < span class ="p "> (</ span > < span class ="n "> mean</ span > < span class ="o "> =</ span > < span class ="n "> mean_cond</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ],</ span > < span class ="n "> cov</ span > < span class ="o "> =</ span > < span class ="n "> cov_cond</ span > < span class ="p "> ,</ span > < span class ="n "> size</ span > < span class ="o "> =</ span > < span class ="n "> n_samples</ span > < span class ="p "> )</ span >
1620+ < span class ="n "> samples_missing</ span > < span class ="o "> =</ span > < span class ="n "> rng</ span > < span class ="o "> .</ span > < span class ="n "> multivariate_normal</ span > < span class ="p "> (</ span >
1621+ < span class ="n "> mean</ span > < span class ="o "> =</ span > < span class ="n "> mean_cond</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ],</ span > < span class ="n "> cov</ span > < span class ="o "> =</ span > < span class ="n "> cov_cond</ span > < span class ="p "> ,</ span > < span class ="n "> size</ span > < span class ="o "> =</ span > < span class ="n "> n_samples</ span > < span class ="p "> ,</ span > < span class ="n "> method</ span > < span class ="o "> =</ span > < span class ="s2 "> "cholesky"</ span >
1622+ < span class ="p "> )</ span >
17161623 < span class ="n "> df_missing</ span > < span class ="o "> =</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> DataFrame</ span > < span class ="p "> (</ span > < span class ="n "> samples_missing</ span > < span class ="p "> ,</ span > < span class ="n "> columns</ span > < span class ="o "> =</ span > < span class ="n "> missing_vars</ span > < span class ="p "> )</ span >
17171624
17181625 < span class ="n "> df</ span > < span class ="o "> =</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> DataFrame</ span > < span class ="p "> (</ span > < span class ="n "> index</ span > < span class ="o "> =</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> n_samples</ span > < span class ="p "> ),</ span > < span class ="n "> columns</ span > < span class ="o "> =</ span > < span class ="n "> variables</ span > < span class ="p "> )</ span >
@@ -1881,11 +1788,11 @@ <h1>Source code for pgmpy.models.LinearGaussianBayesianNetwork</h1><div class="h
18811788< span class ="sd "> >>> df = df.drop(columns=["folK"])</ span >
18821789< span class ="sd "> >>> model.predict(df) # doctest: +NORMALIZE_WHITESPACE</ span >
18831790< span class ="sd "> folK</ span >
1884- < span class ="sd "> 0 0.903384 </ span >
1885- < span class ="sd "> 1 0.576122 </ span >
1886- < span class ="sd "> 2 1.331394 </ span >
1887- < span class ="sd "> 3 0.027018 </ span >
1888- < span class ="sd "> 4 1.731904 </ span >
1791+ < span class ="sd "> 0 1.198400 </ span >
1792+ < span class ="sd "> 1 1.778992 </ span >
1793+ < span class ="sd "> 2 1.605741 </ span >
1794+ < span class ="sd "> 3 1.312239 </ span >
1795+ < span class ="sd "> 4 1.885455 </ span >
18891796< span class ="sd "> """</ span >
18901797 < span class ="c1 "> # Step 0: Check the inputs</ span >
18911798 < span class ="n "> missing_vars</ span > < span class ="o "> =</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="nb "> set</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> nodes</ span > < span class ="p "> ())</ span > < span class ="o "> -</ span > < span class ="nb "> set</ span > < span class ="p "> (</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> columns</ span > < span class ="p "> ))</ span >
@@ -1944,11 +1851,11 @@ <h1>Source code for pgmpy.models.LinearGaussianBayesianNetwork</h1><div class="h
19441851< span class ="sd "> >>> df = df.drop(columns=["folK"])</ span >
19451852< span class ="sd "> >>> model.predict(df) # doctest: +NORMALIZE_WHITESPACE</ span >
19461853< span class ="sd "> folK</ span >
1947- < span class ="sd "> 0 0.903384 </ span >
1948- < span class ="sd "> 1 0.576122 </ span >
1949- < span class ="sd "> 2 1.331394 </ span >
1950- < span class ="sd "> 3 0.027018 </ span >
1951- < span class ="sd "> 4 1.731904 </ span >
1854+ < span class ="sd "> 0 1.198400 </ span >
1855+ < span class ="sd "> 1 1.778992 </ span >
1856+ < span class ="sd "> 2 1.605741 </ span >
1857+ < span class ="sd "> 3 1.312239 </ span >
1858+ < span class ="sd "> 4 1.885455 </ span >
19521859< span class ="sd "> """</ span >
19531860 < span class ="n "> missing_vars</ span > < span class ="p "> ,</ span > < span class ="n "> mu_cond</ span > < span class ="p "> ,</ span > < span class ="n "> _</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> predict_probability</ span > < span class ="p "> (</ span > < span class ="n "> data</ span > < span class ="p "> )</ span >
19541861 < span class ="k "> return</ span > < span class ="n "> pd</ span > < span class ="o "> .</ span > < span class ="n "> DataFrame</ span > < span class ="p "> (</ span > < span class ="n "> mu_cond</ span > < span class ="p "> ,</ span > < span class ="n "> columns</ span > < span class ="o "> =</ span > < span class ="n "> missing_vars</ span > < span class ="p "> ,</ span > < span class ="n "> index</ span > < span class ="o "> =</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> index</ span > < span class ="p "> )</ span > </ div >
0 commit comments