text_plain_output_100.png text_plain_output_334.png application_vnd.jupyter.stderr_output_145.png text_plain_output_770.png application_vnd.jupyter.stderr_output_791.png text_plain_output_640.png application_vnd.jupyter.stderr_output_493.png text_plain_output_822.png application_vnd.jupyter.stderr_output_667.png application_vnd.jupyter.stderr_output_289.png text_plain_output_586.png application_vnd.jupyter.stderr_output_313.png text_plain_output_522.png application_vnd.jupyter.stderr_output_373.png text_plain_output_84.png text_plain_output_624.png text_plain_output_322.png application_vnd.jupyter.stderr_output_529.png application_vnd.jupyter.stderr_output_27.png application_vnd.jupyter.stderr_output_115.png text_plain_output_826.png text_plain_output_828.png application_vnd.jupyter.stderr_output_207.png application_vnd.jupyter.stderr_output_341.png text_plain_output_824.png application_vnd.jupyter.stderr_output_723.png text_plain_output_608.png text_plain_output_56.png text_plain_output_158.png text_plain_output_218.png text_plain_output_264.png application_vnd.jupyter.stderr_output_35.png application_vnd.jupyter.stderr_output_637.png text_plain_output_282.png text_plain_output_396.png application_vnd.jupyter.stderr_output_745.png text_plain_output_232.png application_vnd.jupyter.stderr_output_499.png text_plain_output_362.png application_vnd.jupyter.stderr_output_77.png text_plain_output_258.png application_vnd.jupyter.stderr_output_417.png text_plain_output_452.png text_plain_output_130.png text_plain_output_598.png text_plain_output_490.png application_vnd.jupyter.stderr_output_461.png text_plain_output_790.png application_vnd.jupyter.stderr_output_205.png application_vnd.jupyter.stderr_output_203.png application_vnd.jupyter.stderr_output_575.png text_plain_output_462.png text_plain_output_286.png application_vnd.jupyter.stderr_output_185.png application_vnd.jupyter.stderr_output_227.png text_plain_output_750.png text_plain_output_262.png application_vnd.jupyter.stderr_output_287.png application_vnd.jupyter.stderr_output_9.png text_plain_output_278.png text_plain_output_588.png text_plain_output_254.png application_vnd.jupyter.stderr_output_553.png application_vnd.jupyter.stderr_output_335.png application_vnd.jupyter.stderr_output_215.png application_vnd.jupyter.stderr_output_691.png application_vnd.jupyter.stderr_output_283.png text_plain_output_570.png application_vnd.jupyter.stderr_output_815.png application_vnd.jupyter.stderr_output_643.png text_plain_output_674.png application_vnd.jupyter.stderr_output_631.png application_vnd.jupyter.stderr_output_449.png text_plain_output_98.png text_plain_output_718.png text_plain_output_236.png application_vnd.jupyter.stderr_output_223.png application_vnd.jupyter.stderr_output_767.png text_plain_output_756.png application_vnd.jupyter.stderr_output_435.png application_vnd.jupyter.stderr_output_219.png text_plain_output_678.png text_plain_output_688.png application_vnd.jupyter.stderr_output_279.png application_vnd.jupyter.stderr_output_771.png application_vnd.jupyter.stderr_output_81.png application_vnd.jupyter.stderr_output_111.png text_plain_output_614.png text_plain_output_768.png text_plain_output_420.png text_plain_output_514.png application_vnd.jupyter.stderr_output_53.png application_vnd.jupyter.stderr_output_605.png application_vnd.jupyter.stderr_output_131.png application_vnd.jupyter.stderr_output_695.png application_vnd.jupyter.stderr_output_437.png text_plain_output_284.png application_vnd.jupyter.stderr_output_545.png text_plain_output_576.png text_plain_output_78.png application_vnd.jupyter.stderr_output_99.png text_plain_output_106.png text_plain_output_138.png text_plain_output_670.png application_vnd.jupyter.stderr_output_385.png text_plain_output_544.png text_plain_output_192.png text_plain_output_426.png application_vnd.jupyter.stderr_output_183.png application_vnd.jupyter.stderr_output_181.png application_vnd.jupyter.stderr_output_299.png application_vnd.jupyter.stderr_output_141.png text_plain_output_184.png application_vnd.jupyter.stderr_output_807.png application_vnd.jupyter.stderr_output_737.png text_plain_output_274.png text_plain_output_172.png text_plain_output_664.png application_vnd.jupyter.stderr_output_297.png text_plain_output_716.png application_vnd.jupyter.stderr_output_837.png text_plain_output_736.png application_vnd.jupyter.stderr_output_93.png text_plain_output_332.png application_vnd.jupyter.stderr_output_563.png text_plain_output_684.png text_plain_output_774.png text_plain_output_256.png application_vnd.jupyter.stderr_output_651.png application_vnd.jupyter.stderr_output_641.png text_plain_output_90.png application_vnd.jupyter.stderr_output_713.png application_vnd.jupyter.stderr_output_471.png application_vnd.jupyter.stderr_output_655.png text_plain_output_642.png text_plain_output_550.png application_vnd.jupyter.stderr_output_123.png application_vnd.jupyter.stderr_output_465.png text_plain_output_48.png text_plain_output_388.png application_vnd.jupyter.stderr_output_391.png text_plain_output_422.png text_plain_output_116.png text_plain_output_128.png text_plain_output_30.png text_plain_output_126.png text_plain_output_676.png application_vnd.jupyter.stderr_output_765.png application_vnd.jupyter.stderr_output_731.png text_plain_output_704.png application_vnd.jupyter.stderr_output_355.png application_vnd.jupyter.stderr_output_421.png text_plain_output_776.png text_plain_output_492.png application_vnd.jupyter.stderr_output_431.png text_plain_output_272.png application_vnd.jupyter.stderr_output_73.png application_vnd.jupyter.stderr_output_137.png application_vnd.jupyter.stderr_output_823.png application_vnd.jupyter.stderr_output_133.png text_plain_output_748.png text_plain_output_474.png application_vnd.jupyter.stderr_output_165.png application_vnd.jupyter.stderr_output_715.png application_vnd.jupyter.stderr_output_381.png application_vnd.jupyter.stderr_output_75.png text_plain_output_482.png text_plain_output_316.png text_plain_output_634.png text_plain_output_656.png application_vnd.jupyter.stderr_output_627.png application_vnd.jupyter.stderr_output_585.png application_vnd.jupyter.stderr_output_365.png application_vnd.jupyter.stderr_output_693.png text_plain_output_390.png application_vnd.jupyter.stderr_output_513.png application_vnd.jupyter.stderr_output_593.png application_vnd.jupyter.stderr_output_653.png text_plain_output_198.png application_vnd.jupyter.stderr_output_321.png application_vnd.jupyter.stderr_output_629.png application_vnd.jupyter.stderr_output_7.png application_vnd.jupyter.stderr_output_467.png text_plain_output_548.png application_vnd.jupyter.stderr_output_407.png text_plain_output_178.png text_plain_output_226.png text_plain_output_154.png text_plain_output_234.png text_plain_output_404.png text_plain_output_114.png application_vnd.jupyter.stderr_output_537.png application_vnd.jupyter.stderr_output_447.png text_plain_output_494.png application_vnd.jupyter.stderr_output_11.png application_vnd.jupyter.stderr_output_361.png application_vnd.jupyter.stderr_output_155.png text_plain_output_470.png text_plain_output_496.png text_plain_output_836.png text_plain_output_70.png text_plain_output_712.png text_plain_output_484.png application_vnd.jupyter.stderr_output_649.png text_plain_output_44.png application_vnd.jupyter.stderr_output_423.png application_vnd.jupyter.stderr_output_277.png application_vnd.jupyter.stderr_output_291.png text_plain_output_796.png application_vnd.jupyter.stderr_output_231.png application_vnd.jupyter.stderr_output_317.png application_vnd.jupyter.stderr_output_65.png text_plain_output_546.png text_plain_output_540.png application_vnd.jupyter.stderr_output_813.png application_vnd.jupyter.stderr_output_785.png application_vnd.jupyter.stderr_output_443.png application_vnd.jupyter.stderr_output_235.png text_plain_output_504.png text_plain_output_86.png text_plain_output_244.png text_plain_output_118.png application_vnd.jupyter.stderr_output_453.png application_vnd.jupyter.stderr_output_751.png application_vnd.jupyter.stderr_output_179.png application_vnd.jupyter.stderr_output_143.png application_vnd.jupyter.stderr_output_409.png application_vnd.jupyter.stderr_output_615.png text_plain_output_40.png application_vnd.jupyter.stderr_output_817.png text_plain_output_74.png application_vnd.jupyter.stderr_output_171.png text_plain_output_734.png text_plain_output_190.png text_plain_output_302.png text_plain_output_604.png text_plain_output_340.png application_vnd.jupyter.stderr_output_351.png application_vnd.jupyter.stderr_output_105.png application_vnd.jupyter.stderr_output_763.png text_plain_output_20.png application_vnd.jupyter.stderr_output_275.png application_vnd.jupyter.stderr_output_345.png application_vnd.jupyter.stderr_output_495.png application_vnd.jupyter.stderr_output_729.png text_plain_output_706.png text_plain_output_102.png application_vnd.jupyter.stderr_output_749.png application_vnd.jupyter.stderr_output_577.png text_plain_output_686.png text_plain_output_802.png application_vnd.jupyter.stderr_output_439.png text_plain_output_414.png application_vnd.jupyter.stderr_output_371.png text_plain_output_510.png text_plain_output_222.png application_vnd.jupyter.stderr_output_795.png application_vnd.jupyter.stderr_output_779.png application_vnd.jupyter.stderr_output_747.png application_vnd.jupyter.stderr_output_253.png application_vnd.jupyter.stderr_output_803.png text_plain_output_530.png text_plain_output_144.png application_vnd.jupyter.stderr_output_633.png application_vnd.jupyter.stderr_output_389.png application_vnd.jupyter.stderr_output_489.png application_vnd.jupyter.stderr_output_323.png application_vnd.jupyter.stderr_output_387.png text_plain_output_132.png text_plain_output_60.png application_vnd.jupyter.stderr_output_393.png application_vnd.jupyter.stderr_output_623.png text_plain_output_764.png application_vnd.jupyter.stderr_output_31.png text_plain_output_502.png text_plain_output_794.png application_vnd.jupyter.stderr_output_125.png application_vnd.jupyter.stderr_output_809.png text_plain_output_596.png text_plain_output_564.png text_plain_output_552.png text_plain_output_720.png text_plain_output_654.png text_plain_output_330.png text_plain_output_638.png text_plain_output_434.png application_vnd.jupyter.stderr_output_113.png text_plain_output_68.png text_plain_output_618.png text_plain_output_64.png application_vnd.jupyter.stderr_output_755.png application_vnd.jupyter.stderr_output_221.png application_vnd.jupyter.stderr_output_599.png application_vnd.jupyter.stderr_output_305.png text_plain_output_818.png text_plain_output_532.png application_vnd.jupyter.stderr_output_497.png text_plain_output_200.png text_plain_output_666.png application_vnd.jupyter.stderr_output_383.png application_vnd.jupyter.stderr_output_33.png application_vnd.jupyter.stderr_output_519.png text_plain_output_746.png text_plain_output_628.png text_plain_output_398.png application_vnd.jupyter.stderr_output_725.png text_plain_output_312.png text_plain_output_248.png application_vnd.jupyter.stderr_output_245.png text_plain_output_318.png application_vnd.jupyter.stderr_output_25.png text_plain_output_808.png text_plain_output_690.png text_plain_output_52.png text_plain_output_758.png application_vnd.jupyter.stderr_output_699.png application_vnd.jupyter.stderr_output_419.png application_vnd.jupyter.stderr_output_697.png text_plain_output_572.png text_plain_output_594.png text_plain_output_66.png application_vnd.jupyter.stderr_output_609.png text_plain_output_446.png application_vnd.jupyter.stderr_output_403.png application_vnd.jupyter.stderr_output_249.png application_vnd.jupyter.stderr_output_229.png application_vnd.jupyter.stderr_output_263.png text_plain_output_380.png text_plain_output_692.png text_plain_output_442.png application_vnd.jupyter.stderr_output_273.png application_vnd.jupyter.stderr_output_525.png application_vnd.jupyter.stderr_output_135.png text_plain_output_300.png application_vnd.jupyter.stderr_output_769.png text_plain_output_660.png application_vnd.jupyter.stderr_output_555.png application_vnd.jupyter.stderr_output_211.png application_vnd.jupyter.stderr_output_821.png application_vnd.jupyter.stderr_output_517.png application_vnd.jupyter.stderr_output_777.png application_vnd.jupyter.stderr_output_503.png text_plain_output_476.png application_vnd.jupyter.stderr_output_515.png application_vnd.jupyter.stderr_output_757.png application_vnd.jupyter.stderr_output_463.png text_plain_output_740.png text_plain_output_518.png application_vnd.jupyter.stderr_output_285.png application_vnd.jupyter.stderr_output_177.png text_plain_output_14.png application_vnd.jupyter.stderr_output_527.png application_vnd.jupyter.stderr_output_665.png text_plain_output_32.png text_plain_output_516.png text_plain_output_304.png text_plain_output_88.png text_plain_output_240.png application_vnd.jupyter.stderr_output_89.png text_plain_output_140.png text_plain_output_606.png application_vnd.jupyter.stderr_output_269.png text_plain_output_376.png text_plain_output_280.png text_plain_output_728.png application_vnd.jupyter.stderr_output_535.png text_plain_output_242.png text_plain_output_460.png application_vnd.jupyter.stderr_output_189.png text_plain_output_160.png text_plain_output_58.png text_plain_output_680.png application_vnd.jupyter.stderr_output_149.png text_plain_output_622.png application_vnd.jupyter.stderr_output_91.png text_plain_output_708.png application_vnd.jupyter.stderr_output_239.png text_plain_output_260.png application_vnd.jupyter.stderr_output_95.png application_vnd.jupyter.stderr_output_541.png text_plain_output_294.png application_vnd.jupyter.stderr_output_559.png application_vnd.jupyter.stderr_output_827.png application_vnd.jupyter.stderr_output_583.png text_plain_output_392.png text_plain_output_320.png application_vnd.jupyter.stderr_output_67.png application_vnd.jupyter.stderr_output_237.png application_vnd.jupyter.stderr_output_339.png application_vnd.jupyter.stderr_output_689.png text_plain_output_386.png text_plain_output_438.png text_plain_output_76.png text_plain_output_108.png application_vnd.jupyter.stderr_output_337.png application_vnd.jupyter.stderr_output_481.png text_plain_output_54.png text_plain_output_142.png text_plain_output_10.png application_vnd.jupyter.stderr_output_539.png text_plain_output_700.png text_plain_output_276.png text_plain_output_6.png application_vnd.jupyter.stderr_output_71.png text_plain_output_326.png text_plain_output_744.png text_plain_output_578.png application_vnd.jupyter.stderr_output_259.png text_plain_output_170.png text_plain_output_92.png application_vnd.jupyter.stderr_output_819.png text_plain_output_658.png text_plain_output_120.png application_vnd.jupyter.stderr_output_293.png application_vnd.jupyter.stderr_output_709.png text_plain_output_24.png application_vnd.jupyter.stderr_output_257.png application_vnd.jupyter.stderr_output_775.png application_vnd.jupyter.stderr_output_23.png application_vnd.jupyter.stderr_output_159.png application_vnd.jupyter.stderr_output_799.png application_vnd.jupyter.stderr_output_735.png text_plain_output_344.png application_vnd.jupyter.stderr_output_325.png application_vnd.jupyter.stderr_output_663.png application_vnd.jupyter.stderr_output_247.png application_vnd.jupyter.stderr_output_657.png text_plain_output_104.png text_plain_output_784.png text_plain_output_270.png text_plain_output_466.png application_vnd.jupyter.stderr_output_675.png text_plain_output_568.png application_vnd.jupyter.stderr_output_677.png application_vnd.jupyter.stderr_output_59.png text_plain_output_134.png application_vnd.jupyter.stderr_output_589.png text_plain_output_288.png application_vnd.jupyter.stderr_output_197.png application_vnd.jupyter.stderr_output_369.png application_vnd.jupyter.stderr_output_459.png text_plain_output_488.png text_plain_output_18.png text_plain_output_266.png text_plain_output_208.png text_plain_output_50.png text_plain_output_36.png text_plain_output_646.png text_plain_output_766.png application_vnd.jupyter.stderr_output_441.png application_vnd.jupyter.stderr_output_543.png application_vnd.jupyter.stderr_output_485.png application_vnd.jupyter.stderr_output_83.png text_plain_output_96.png application_vnd.jupyter.stderr_output_19.png text_plain_output_418.png text_plain_output_180.png text_plain_output_556.png text_plain_output_210.png text_plain_output_112.png application_vnd.jupyter.stderr_output_505.png application_vnd.jupyter.stderr_output_281.png text_plain_output_152.png application_vnd.jupyter.stderr_output_13.png application_vnd.jupyter.stderr_output_127.png text_plain_output_798.png application_vnd.jupyter.stderr_output_705.png application_vnd.jupyter.stderr_output_661.png application_vnd.jupyter.stderr_output_3.png text_plain_output_290.png application_vnd.jupyter.stderr_output_571.png application_vnd.jupyter.stderr_output_587.png text_plain_output_506.png application_vnd.jupyter.stderr_output_195.png application_vnd.jupyter.stderr_output_331.png application_vnd.jupyter.stderr_output_561.png application_vnd.jupyter.stderr_output_721.png text_plain_output_324.png text_plain_output_22.png text_plain_output_188.png text_plain_output_366.png application_vnd.jupyter.stderr_output_327.png application_vnd.jupyter.stderr_output_5.png application_vnd.jupyter.stderr_output_261.png text_plain_output_328.png application_vnd.jupyter.stderr_output_483.png text_plain_output_730.png application_vnd.jupyter.stderr_output_301.png text_plain_output_368.png application_vnd.jupyter.stderr_output_347.png text_plain_output_372.png application_vnd.jupyter.stderr_output_411.png application_vnd.jupyter.stderr_output_687.png text_plain_output_542.png text_plain_output_146.png text_plain_output_754.png text_plain_output_454.png text_plain_output_806.png text_plain_output_814.png application_vnd.jupyter.stderr_output_241.png application_vnd.jupyter.stderr_output_405.png application_vnd.jupyter.stderr_output_475.png application_vnd.jupyter.stderr_output_163.png text_plain_output_338.png application_vnd.jupyter.stderr_output_647.png application_vnd.jupyter.stderr_output_151.png text_plain_output_512.png application_vnd.jupyter.stderr_output_617.png application_vnd.jupyter.stderr_output_103.png application_vnd.jupyter.stderr_output_109.png text_plain_output_738.png text_plain_output_382.png text_plain_output_38.png text_plain_output_682.png application_vnd.jupyter.stderr_output_367.png text_plain_output_528.png text_plain_output_648.png text_plain_output_214.png text_plain_output_166.png text_plain_output_358.png application_vnd.jupyter.stderr_output_97.png application_vnd.jupyter.stderr_output_473.png text_plain_output_726.png text_plain_output_714.png application_vnd.jupyter.stderr_output_395.png text_plain_output_314.png text_plain_output_592.png text_plain_output_410.png application_vnd.jupyter.stderr_output_669.png text_plain_output_432.png application_vnd.jupyter.stderr_output_201.png application_vnd.jupyter.stderr_output_307.png text_plain_output_308.png application_vnd.jupyter.stderr_output_673.png text_plain_output_16.png application_vnd.jupyter.stderr_output_551.png text_plain_output_174.png text_plain_output_812.png text_plain_output_212.png text_plain_output_652.png text_plain_output_644.png text_plain_output_230.png application_vnd.jupyter.stderr_output_15.png application_vnd.jupyter.stderr_output_603.png text_plain_output_430.png text_plain_output_742.png text_plain_output_630.png text_plain_output_778.png application_vnd.jupyter.stderr_output_591.png application_vnd.jupyter.stderr_output_579.png text_plain_output_378.png text_plain_output_580.png application_vnd.jupyter.stderr_output_679.png text_plain_output_206.png application_vnd.jupyter.stderr_output_671.png application_vnd.jupyter.stderr_output_479.png text_plain_output_788.png application_vnd.jupyter.stderr_output_611.png application_vnd.jupyter.stderr_output_739.png text_plain_output_732.png application_vnd.jupyter.stderr_output_635.png text_plain_output_8.png text_plain_output_122.png application_vnd.jupyter.stderr_output_193.png text_plain_output_384.png application_vnd.jupyter.stderr_output_17.png text_plain_output_498.png text_plain_output_662.png text_plain_output_780.png application_vnd.jupyter.stderr_output_87.png text_plain_output_182.png text_plain_output_26.png application_vnd.jupyter.stderr_output_619.png application_vnd.jupyter.stderr_output_711.png text_plain_output_830.png application_vnd.jupyter.stderr_output_187.png text_plain_output_554.png text_plain_output_536.png text_plain_output_620.png text_plain_output_406.png application_vnd.jupyter.stderr_output_445.png text_plain_output_310.png text_plain_output_760.png text_plain_output_456.png application_vnd.jupyter.stderr_output_477.png text_plain_output_558.png application_vnd.jupyter.stderr_output_455.png text_plain_output_668.png application_vnd.jupyter.stderr_output_469.png text_plain_output_702.png text_plain_output_724.png text_plain_output_220.png application_vnd.jupyter.stderr_output_117.png text_plain_output_834.png application_vnd.jupyter.stderr_output_625.png application_vnd.jupyter.stderr_output_413.png text_plain_output_238.png text_plain_output_520.png text_plain_output_616.png application_vnd.jupyter.stderr_output_401.png text_plain_output_34.png text_plain_output_612.png text_plain_output_832.png application_vnd.jupyter.stderr_output_789.png application_vnd.jupyter.stderr_output_531.png text_plain_output_346.png text_plain_output_168.png text_plain_output_800.png application_vnd.jupyter.stderr_output_69.png application_vnd.jupyter.stderr_output_487.png text_plain_output_394.png text_plain_output_204.png text_plain_output_350.png application_vnd.jupyter.stderr_output_41.png text_plain_output_636.png application_vnd.jupyter.stderr_output_157.png text_plain_output_42.png text_plain_output_110.png text_plain_output_508.png application_vnd.jupyter.stderr_output_805.png text_plain_output_468.png text_plain_output_370.png application_vnd.jupyter.stderr_output_377.png application_vnd.jupyter.stderr_output_727.png text_plain_output_224.png application_vnd.jupyter.stderr_output_167.png application_vnd.jupyter.stderr_output_797.png application_vnd.jupyter.stderr_output_79.png application_vnd.jupyter.stderr_output_825.png application_vnd.jupyter.stderr_output_49.png text_plain_output_696.png application_vnd.jupyter.stderr_output_743.png application_vnd.jupyter.stderr_output_753.png text_plain_output_816.png application_vnd.jupyter.stderr_output_333.png application_vnd.jupyter.stderr_output_793.png application_vnd.jupyter.stderr_output_569.png application_vnd.jupyter.stderr_output_63.png text_plain_output_610.png application_vnd.jupyter.stderr_output_47.png application_vnd.jupyter.stderr_output_621.png application_vnd.jupyter.stderr_output_607.png application_vnd.jupyter.stderr_output_681.png application_vnd.jupyter.stderr_output_57.png application_vnd.jupyter.stderr_output_363.png text_plain_output_632.png text_plain_output_626.png application_vnd.jupyter.stderr_output_169.png text_plain_output_450.png application_vnd.jupyter.stderr_output_547.png application_vnd.jupyter.stderr_output_801.png text_plain_output_252.png application_vnd.jupyter.stderr_output_683.png application_vnd.jupyter.stderr_output_415.png application_vnd.jupyter.stderr_output_343.png text_plain_output_296.png text_plain_output_672.png application_vnd.jupyter.stderr_output_567.png text_plain_output_28.png text_plain_output_72.png application_vnd.jupyter.stderr_output_173.png application_vnd.jupyter.stderr_output_511.png application_vnd.jupyter.stderr_output_319.png application_vnd.jupyter.stderr_output_191.png application_vnd.jupyter.stderr_output_399.png text_plain_output_820.png text_plain_output_162.png text_plain_output_136.png text_plain_output_602.png text_plain_output_246.png text_plain_output_2.png application_vnd.jupyter.stderr_output_433.png text_plain_output_772.png application_vnd.jupyter.stderr_output_213.png application_vnd.jupyter.stderr_output_829.png application_vnd.jupyter.stderr_output_613.png text_plain_output_710.png text_plain_output_500.png application_vnd.jupyter.stderr_output_349.png application_vnd.jupyter.stderr_output_645.png application_vnd.jupyter.stderr_output_397.png application_vnd.jupyter.stderr_output_491.png text_plain_output_562.png application_vnd.jupyter.stderr_output_429.png text_plain_output_196.png text_plain_output_342.png application_vnd.jupyter.stderr_output_835.png application_vnd.jupyter.stderr_output_295.png application_vnd.jupyter.stderr_output_29.png application_vnd.jupyter.stderr_output_101.png application_vnd.jupyter.stderr_output_359.png application_vnd.jupyter.stderr_output_267.png application_vnd.jupyter.stderr_output_225.png application_vnd.jupyter.stderr_output_209.png text_plain_output_786.png text_plain_output_650.png application_vnd.jupyter.stderr_output_139.png application_vnd.jupyter.stderr_output_717.png text_plain_output_150.png application_vnd.jupyter.stderr_output_1.png application_vnd.jupyter.stderr_output_533.png text_plain_output_752.png text_plain_output_176.png application_vnd.jupyter.stderr_output_217.png text_plain_output_584.png application_vnd.jupyter.stderr_output_61.png text_plain_output_186.png application_vnd.jupyter.stderr_output_51.png application_vnd.jupyter.stderr_output_311.png text_plain_output_228.png application_vnd.jupyter.stderr_output_831.png text_plain_output_478.png text_plain_output_762.png text_plain_output_412.png application_vnd.jupyter.stderr_output_353.png text_plain_output_268.png text_plain_output_436.png text_plain_output_354.png text_plain_output_360.png text_plain_output_82.png text_plain_output_356.png text_plain_output_202.png text_plain_output_698.png application_vnd.jupyter.stderr_output_161.png application_vnd.jupyter.stderr_output_379.png text_plain_output_336.png application_vnd.jupyter.stderr_output_427.png text_plain_output_80.png text_plain_output_94.png text_plain_output_164.png application_vnd.jupyter.stderr_output_707.png text_plain_output_534.png application_vnd.jupyter.stderr_output_233.png text_plain_output_444.png application_vnd.jupyter.stderr_output_153.png text_plain_output_216.png text_plain_output_124.png application_vnd.jupyter.stderr_output_45.png text_plain_output_148.png text_plain_output_694.png application_vnd.jupyter.stderr_output_659.png text_plain_output_402.png text_plain_output_722.png text_plain_output_424.png text_plain_output_486.png application_vnd.jupyter.stderr_output_639.png text_plain_output_250.png application_vnd.jupyter.stderr_output_425.png application_vnd.jupyter.stderr_output_509.png application_vnd.jupyter.stderr_output_175.png text_plain_output_560.png text_plain_output_526.png text_plain_output_400.png text_plain_output_804.png text_plain_output_524.png application_vnd.jupyter.stderr_output_601.png application_vnd.jupyter.stderr_output_457.png text_plain_output_538.png text_plain_output_12.png application_vnd.jupyter.stderr_output_773.png application_vnd.jupyter.stderr_output_39.png text_plain_output_838.png text_plain_output_408.png application_vnd.jupyter.stderr_output_119.png application_vnd.jupyter.stderr_output_581.png application_vnd.jupyter.stderr_output_781.png application_vnd.jupyter.stderr_output_741.png application_vnd.jupyter.stderr_output_787.png application_vnd.jupyter.stderr_output_309.png application_vnd.jupyter.stderr_output_107.png text_plain_output_428.png application_vnd.jupyter.stderr_output_255.png application_vnd.jupyter.stderr_output_21.png application_vnd.jupyter.stderr_output_523.png application_vnd.jupyter.stderr_output_733.png application_vnd.jupyter.stderr_output_719.png application_vnd.jupyter.stderr_output_43.png application_vnd.jupyter.stderr_output_357.png application_vnd.jupyter.stderr_output_595.png text_plain_output_416.png application_vnd.jupyter.stderr_output_265.png text_plain_output_194.png application_vnd.jupyter.stderr_output_685.png application_vnd.jupyter.stderr_output_85.png application_vnd.jupyter.stderr_output_521.png text_plain_output_782.png text_plain_output_62.png text_plain_output_480.png text_plain_output_810.png application_vnd.jupyter.stderr_output_597.png application_vnd.jupyter.stderr_output_761.png application_vnd.jupyter.stderr_output_783.png text_plain_output_440.png text_plain_output_458.png application_vnd.jupyter.stderr_output_549.png application_vnd.jupyter.stderr_output_271.png application_vnd.jupyter.stderr_output_55.png application_vnd.jupyter.stderr_output_501.png text_plain_output_464.png application_vnd.jupyter.stderr_output_303.png text_plain_output_156.png application_vnd.jupyter.stderr_output_147.png application_vnd.jupyter.stderr_output_375.png application_vnd.jupyter.stderr_output_811.png text_plain_output_298.png application_vnd.jupyter.stderr_output_121.png text_plain_output_348.png application_vnd.jupyter.stderr_output_451.png text_plain_output_448.png text_plain_output_364.png application_vnd.jupyter.stderr_output_703.png application_vnd.jupyter.stderr_output_329.png text_plain_output_792.png application_vnd.jupyter.stderr_output_243.png text_plain_output_352.png application_vnd.jupyter.stderr_output_759.png application_vnd.jupyter.stderr_output_199.png text_plain_output_374.png application_vnd.jupyter.stderr_output_565.png application_vnd.jupyter.stderr_output_573.png text_plain_output_472.png application_vnd.jupyter.stderr_output_129.png text_plain_output_566.png text_plain_output_600.png application_vnd.jupyter.stderr_output_507.png application_vnd.jupyter.stderr_output_251.png application_vnd.jupyter.stderr_output_557.png text_plain_output_292.png application_vnd.jupyter.stderr_output_315.png application_vnd.jupyter.stderr_output_37.png application_vnd.jupyter.stderr_output_701.png text_plain_output_574.png text_plain_output_582.png text_plain_output_306.png application_vnd.jupyter.stderr_output_833.png text_plain_output_46.png
from pathlib import Path

from sklearn.metrics import mean_squared_error

from sklearn.model_selection import train_test_split, KFold

import lightgbm as lgbm

import numpy as np

import optuna

import pandas as pd

path = Path('/kaggle/input/house-prices-advanced-regression-techniques/')
train_ = pd.read_csv(path.joinpath('train.csv'))
test_ = pd.read_csv(path.joinpath('test.csv'))

categorical_feature = []
for col in train_.columns.tolist():
    if train_[col].dtype == object:
        categorical_feature.append(col)

nan_train_cols = train_.columns[1:-1][train_.iloc[:, 1:-1].isnull().sum() > 0].tolist()
for col in nan_train_cols:
    if col in categorical_feature:
        train_.loc[train_[col].isna(), col] = train_.loc[~train_[col].isna(), col].mode().values[0]
    else:
        train_.loc[train_[col].isna(), col] = train_.loc[~train_[col].isna(), col].mean()

nan_test_cols = test_.columns[1:-1][test_.iloc[:, 1:-1].isnull().sum() > 0].tolist()
for col in nan_test_cols:
    if col in categorical_feature:
        test_.loc[test_[col].isna(), col] = test_.loc[~test_[col].isna(), col].mode().values[0]
    else:
        test_.loc[test_[col].isna(), col] = test_.loc[~test_[col].isna(), col].mean()

columns_drop = ['GarageCars', 'GarageYrBlt', 'GrLivArea', 'Id', 'YearRemodAdd']
train_.drop(columns=columns_drop, inplace=True)
test_.drop(columns=columns_drop, inplace=True)

all_ = pd.concat([train_, test_])
dumy = pd.get_dummies(all_[categorical_feature])
all_ = pd.concat([all_.loc[:, ~all_.columns.isin(categorical_feature)], dumy], axis=1)
train_data = all_.iloc[0:1460, :]
test_data = all_.iloc[1460:, :]

test_data.drop(columns=['SalePrice'], inplace=True)
feature_cols = train_data.columns.tolist()
feature_cols.remove('SalePrice')

train_data['SalePrice'] = np.log(train_data['SalePrice'])
train_data, validation_data = train_test_split(train_data, test_size=0.2, random_state=42)
train_data.reset_index(drop=True, inplace=True)
validation_data.reset_index(drop=True, inplace=True)

baseline = lgbm.LGBMRegressor()
baseline.fit(train_data[feature_cols], train_data['SalePrice'])
baseline_val_y = baseline.predict(validation_data[feature_cols])
base_line_score = np.sqrt(mean_squared_error(baseline_val_y, validation_data['SalePrice'].values))

def objective(trial, x_train, y_train, x_valid, y_valid):
    train_d = lgbm.Dataset(x_train, y_train)
    val_d = lgbm.Dataset(x_valid, y_valid)
    param = {'objective': 'regression', 'metric': 'rmse', 'verbosity': -1, 'boosting_type': trial.suggest_categorical('boosting_type', ['gbdt', 'rf', 'dart']), 'lambda_l1': trial.suggest_loguniform('lambda_l1', 1e-08, 10.0), 'lambda_l2': trial.suggest_loguniform('lambda_l2', 1e-08, 10.0), 'num_leaves': trial.suggest_int('num_leaves', 2, 10000), 'feature_fraction': trial.suggest_uniform('feature_fraction', 0.4, 1.0), 'bagging_fraction': trial.suggest_uniform('bagging_fraction', 0.4, 1.0), 'bagging_freq': trial.suggest_int('bagging_freq', 1, 7), 'min_child_samples': trial.suggest_int('min_child_samples', 5, 500)}
    gbm = lgbm.train(param, train_d, valid_sets=val_d, verbose_eval=100)
    off = gbm.predict(x_valid)
    error = mean_squared_error(y_valid, off)
    return np.sqrt(error)
x_train, x_val = (train_data[feature_cols].values, validation_data[feature_cols].values)
y_train, y_val = (train_data['SalePrice'].values, validation_data['SalePrice'].values)
study = optuna.create_study(direction='minimize')
study.optimize(lambda trial: objective(trial, x_train, y_train, x_val, y_val), n_trials=1000)

param = {'objective': 'regression', 'metric': 'rmse', 'verbosity': -1, 'boosting_type': 'gbdt'}
param.update(study.best_trial.params)
print(param)