[{"data":1,"prerenderedAt":230},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fanalyzing-a-healthcare-knowledge-graph-with-cypher-and-gds":71,"\u002Fblog\u002Fanalyzing-a-healthcare-knowledge-graph-with-cypher-and-gds-surround":225},[4,58],{"title":5,"path":6,"stem":7,"children":8,"page":57},"Blog","\u002Fblog","blog",[9,13,17,21,25,29,33,37,41,45,49,53],{"title":10,"path":11,"stem":12},"Decoding Sentiment: Analysis of 4 Million Amazon Reviews","\u002Fblog\u002Famazon-review-sentiment-capstone","blog\u002Famazon-review-sentiment-capstone",{"title":14,"path":15,"stem":16},"Analyzing a Healthcare Knowledge Graph with Cypher and Graph Data Science","\u002Fblog\u002Fanalyzing-a-healthcare-knowledge-graph-with-cypher-and-gds","blog\u002Fanalyzing-a-healthcare-knowledge-graph-with-cypher-and-gds",{"title":18,"path":19,"stem":20},"Navigating the Web: Prioritizing Supply Chain Risk with Neo4j","\u002Fblog\u002Fautomotive-supply-chain-neo4j-capstone","blog\u002Fautomotive-supply-chain-neo4j-capstone",{"title":22,"path":23,"stem":24},"My First AWS Adventure: Building a Sentiment Analysis System on a Budget","\u002Fblog\u002Faws-sentiment-analysis-journey","blog\u002Faws-sentiment-analysis-journey",{"title":26,"path":27,"stem":28},"Building a Hybrid Movie Recommender with Neo4j and Graph Data Science","\u002Fblog\u002Fbuilding-a-hybrid-movie-recommender-with-neo4j-and-gds","blog\u002Fbuilding-a-hybrid-movie-recommender-with-neo4j-and-gds",{"title":30,"path":31,"stem":32},"Designing and Building a Neo4j Knowledge Graph from Relational Data","\u002Fblog\u002Fdesigning-and-building-a-neo4j-knowledge-graph-from-relational-data","blog\u002Fdesigning-and-building-a-neo4j-knowledge-graph-from-relational-data",{"title":34,"path":35,"stem":36},"Developing a GraphRAG Research Chatbot with Neo4j","\u002Fblog\u002Fdeveloping-a-graphrag-research-chatbot-with-neo4j","blog\u002Fdeveloping-a-graphrag-research-chatbot-with-neo4j",{"title":38,"path":39,"stem":40},"From Code to Insights: My Journey from Software Development to Data Analytics","\u002Fblog\u002Ffrom-code-to-insights-journey","blog\u002Ffrom-code-to-insights-journey",{"title":42,"path":43,"stem":44},"Predicting Hospital Readmissions: A Machine Learning Journey","\u002Fblog\u002Fhospital-readmissions","blog\u002Fhospital-readmissions",{"title":46,"path":47,"stem":48},"My First Steps into Graph Databases: Learning Neo4j Fundamentals","\u002Fblog\u002Fneo4j-graph-databases-fundamentals","blog\u002Fneo4j-graph-databases-fundamentals",{"title":50,"path":51,"stem":52},"Building a Serverless ETL Pipeline on AWS: From Raw Data to Interactive Dashboards","\u002Fblog\u002Fserverless-etl-pipeline-aws","blog\u002Fserverless-etl-pipeline-aws",{"title":54,"path":55,"stem":56},"From Traffic Violations to Safety Culture: My Data Analytics Framework","\u002Fblog\u002Ftraffic-violation-analytics-framework","blog\u002Ftraffic-violation-analytics-framework",false,{"title":59,"path":60,"stem":61,"children":62,"page":57},"Publications","\u002Fpublications","publications",[63,67],{"title":64,"path":65,"stem":66},"PCT-led early warning vital sign escalation","\u002Fpublications\u002Fpct-led-early-warning-escalation","publications\u002Fpct-led-early-warning-escalation",{"title":68,"path":69,"stem":70},"Reducing Phlebotomy Redraws Through Pre-Analytic SOPs: Training, Fidelity, and Outcome Metrics from a Community Hospital","\u002Fpublications\u002Freducing-phlebotomy-redraws-pre-analytic-sops","publications\u002Freducing-phlebotomy-redraws-pre-analytic-sops",{"id":72,"title":14,"author":73,"body":77,"date":210,"description":211,"extension":212,"image":213,"meta":214,"minRead":221,"navigation":222,"path":15,"seo":223,"stem":16,"__hash__":224},"blog\u002Fblog\u002Fanalyzing-a-healthcare-knowledge-graph-with-cypher-and-gds.md",{"name":74,"avatar":75},"Peter Mangoro",{"src":76,"alt":74},"\u002Fprofile.jpg",{"type":78,"value":79,"toc":200},"minimark",[80,84,89,92,105,108,112,124,127,131,158,162,165,169,183,187],[81,82,83],"p",{},"This assignment felt like a real analytics engagement: incomplete documentation, a complex healthcare graph, and the need to make method choices that I could justify.",[85,86,88],"h2",{"id":87},"assignment-focus","Assignment Focus",[81,90,91],{},"I worked with a FAERS-inspired healthcare dataset restored from a Neo4j dump, then analyzed it in three passes:",[93,94,95,99,102],"ol",{},[96,97,98],"li",{},"Cypher-based schema and data exploration",[96,100,101],{},"Deeper analytical querying and aggregation",[96,103,104],{},"GDS workflows for structural and similarity analysis",[81,106,107],{},"I used Python + Neo4j driver + pandas to keep experiments iterative and reproducible.",[85,109,111],{"id":110},"what-i-built","What I Built",[113,114,115,118,121],"ul",{},[96,116,117],{},"A practical EDA workflow for discovering labels, relationship patterns, and property quality",[96,119,120],{},"Analytical Cypher queries for non-trivial domain questions",[96,122,123],{},"GDS projections and algorithm runs aligned to assignment questions (instead of running algorithms blindly)",[81,125,126],{},"I documented not just outputs, but why each query\u002Falgorithm choice matched the analytical goal.",[85,128,130],{"id":129},"key-findings","Key Findings",[113,132,133,140,146,152],{},[96,134,135,139],{},[136,137,138],"strong",{},"Schema discovery first"," saved time later. Without that step, I would have built analyses on false assumptions.",[96,141,142,145],{},[136,143,144],{},"Cypher before GDS"," produced better algorithm decisions because I understood graph semantics first.",[96,147,148,151],{},[136,149,150],{},"Projection design is the real GDS work",": node sets, relationship directions, and weighting determine result quality.",[96,153,154,157],{},[136,155,156],{},"Driver-based iteration in Python"," made query refinement much faster than manual-only browser experimentation.",[85,159,161],{"id":160},"lessons-learned","Lessons Learned",[81,163,164],{},"This project taught me to treat graph analytics as a staged process: understand the graph, validate assumptions, then apply algorithms with purpose. I also learned how quickly “interesting but wrong” results can appear when projections are underspecified.",[85,166,168],{"id":167},"skills-i-gained","Skills I Gained",[113,170,171,174,177,180],{},[96,172,173],{},"Cypher EDA for unfamiliar production-like graph datasets",[96,175,176],{},"GDS projection design and algorithm execution",[96,178,179],{},"Python-driven graph analysis workflow with Neo4j driver + pandas",[96,181,182],{},"Query\u002Fresult interpretation with explicit methodological tradeoffs",[85,184,186],{"id":185},"artifacts","Artifacts",[113,188,189],{},[96,190,191,192],{},"Notebook: ",[193,194,196],"a",{"href":195,"download":196,"target":197,"rel":198},"\u002Fneo4j\u002FP_Mangoro_C2_assn.ipynb","P_Mangoro_C2_assn.ipynb","_blank",[199],"noopener",{"title":201,"searchDepth":202,"depth":202,"links":203},"",2,[204,205,206,207,208,209],{"id":87,"depth":202,"text":88},{"id":110,"depth":202,"text":111},{"id":129,"depth":202,"text":130},{"id":160,"depth":202,"text":161},{"id":167,"depth":202,"text":168},{"id":185,"depth":202,"text":186},"2026-03-08","How I explored a FAERS-style healthcare graph, moved from Cypher EDA to GDS workflows, and turned graph results into practical analytical insights.","md","\u002Fblog\u002FgraphDatabase\u002Fnode-properties.svg",{"tags":215},[216,217,218,219,220],"Neo4j","Cypher","Graph Data Science","Healthcare Analytics","Python",8,true,{"title":14,"description":211},"nO5a8m2FTMntgTI7GAsA8OZfBYLZnMWeaURkGGZhhew",[226,228],{"title":10,"path":11,"stem":12,"description":227,"children":-1},"Group capstone: binary sentiment on the Amazon Reviews corpus—EDA, TF–IDF baselines, clustering, MLP and DistilBERT, and a locked test evaluation with leakage controls.",{"title":18,"path":19,"stem":20,"description":229,"children":-1},"Group capstone: modeling automotive BOM dependencies in Neo4j and using PageRank and Leiden community detection to surface chokepoints and modular risk—plus demo video and full submission.",1780158384236]