<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ScholarLogic Learning Notes]]></title><description><![CDATA[ScholarLogic Learning Notes]]></description><link>https://scholarlogic.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 09:16:34 GMT</lastBuildDate><atom:link href="https://scholarlogic.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Before Building a Prediction Model, Write Down When Each Feature Exists]]></title><description><![CDATA[A fictional delivery example explains prediction timing, future-derived features, historical aggregates and evaluation splits for beginners.]]></description><link>https://scholarlogic.hashnode.dev/before-building-a-prediction-model-write-down-when-each-feature-exists</link><guid isPermaLink="true">https://scholarlogic.hashnode.dev/before-building-a-prediction-model-write-down-when-each-feature-exists</guid><category><![CDATA[Data Science]]></category><dc:creator><![CDATA[Scholar Logic]]></dc:creator><pubDate>Wed, 11 Nov 2026 13:03:05 GMT</pubDate><content:encoded><![CDATA[<p>A beginner data science project can accidentally answer an easier question than the one it claims to solve. One way this happens is using information that would not exist when a prediction is needed.</p>
<p>Consider a fictional delivery project. You want to predict, at order checkout, whether a parcel will arrive late. Before choosing an algorithm, write down exactly what you know at checkout.</p>
<p>Start with the prediction moment</p>
<p>“At checkout” is part of the problem definition. An estimate made after a courier has attempted delivery is a different task. Both might be useful, but their inputs and evaluation should not be mixed.</p>
<p>For each proposed feature, record its meaning, source, availability time and whether it can change later. A short feature inventory can catch a problem that a high accuracy score hides.</p>
<p>Classify four candidate features</p>
<p>Destination region: usable if the customer has provided it by checkout.</p>
<p>Basket item count: usable if it describes the basket at checkout, rather than the final amended order.</p>
<p>Actual delivery timestamp: unavailable at checkout. It belongs to the later outcome and must not be an input for this prediction.</p>
<p>Final delivery status: also unavailable at checkout. If it says “delivered late,” it effectively reveals the answer.</p>
<p>Historical aggregates need a cutoff too</p>
<p>A feature such as “average delay for this region” sounds reasonable. But if it uses deliveries that happened after the order being predicted, it brings future information into the past.</p>
<p>For a historical simulation, calculate that value from records available before the prediction time. Some older orders may not yet have completed, so their eventual outcomes would also be unavailable. Document how you handle that delay.</p>
<p>Separate the target from the features</p>
<p>The target can be determined after delivery because it is the outcome you want to predict. Define “late” consistently, for example as arrival after the promised deadline recorded at checkout. Do not quietly replace that deadline with a later revised promise without explaining the change.</p>
<p>Use synthetic records for this exercise. Real delivery data can contain addresses and other personal information that do not belong in a public portfolio.</p>
<p>Build an evaluation that matches the use</p>
<p>If the intended use is predicting future orders, reserve a later period for evaluation and develop the model using earlier data. Keep the final evaluation period out of model selection. Fit learned preprocessing on the training data, then apply it to the evaluation data.</p>
<p>Also consider repeated entities. A split that places very similar records from the same entity in both groups can give an overly easy test if the intended use is predicting for previously unseen entities. The correct split depends on the deployment question.</p>
<p>A time split alone is not a guarantee against leakage. A future-derived feature remains invalid even when rows are separated by date.</p>
<p>What to include in a portfolio</p>
<p>Show the prediction question, feature availability inventory, target definition and training and evaluation periods. Include one rejected feature and explain why you excluded it. Compare the model with a simple baseline and describe limitations instead of presenting a single score as proof of usefulness.</p>
<p>AI can suggest suspicious features, but it cannot establish when your source system recorded them. Check that timing against the data documentation and your own assumptions.</p>
<p>Published by ScholarLogic, an IT training provider in Bengaluru. Related Data Science learning path: <a href="https://scholarlogic.net/data-science-course-in-bangalore/">https://scholarlogic.net/data-science-course-in-bangalore/</a></p>
<p>Prepared with AI assistance. This is a proposed exercise using fictional delivery records, not a claim about a deployed model.</p>
]]></content:encoded></item><item><title><![CDATA[A Beginner Java Project Should Explain Its Failure Cases]]></title><description><![CDATA[Plan a Java library checkout exercise with clear rules, synthetic data, failure tests and an honest README.]]></description><link>https://scholarlogic.hashnode.dev/a-beginner-java-project-should-explain-its-failure-cases</link><guid isPermaLink="true">https://scholarlogic.hashnode.dev/a-beginner-java-project-should-explain-its-failure-cases</guid><category><![CDATA[Java]]></category><dc:creator><![CDATA[Scholar Logic]]></dc:creator><pubDate>Wed, 11 Nov 2026 12:21:58 GMT</pubDate><content:encoded><![CDATA[<p>A library checkout app is a useful beginner project because its rules are easy to describe and surprisingly easy to leave ambiguous. Before adding a polished interface, define what happens when a request cannot succeed.</p>
<p>Start with three rules</p>
<p>A checkout needs a known member, a known book, and an available copy. These are separate checks. A missing book identifier is an input problem; a valid identifier for an unavailable book is a business-rule outcome. Your application should explain the difference.</p>
<p>Write examples before implementation</p>
<p>Use synthetic members and books. Create one available book and one checked-out book. Record the expected result for a successful checkout, an unknown member, an unknown book, and a second checkout of the same copy. After every failed operation, confirm that the application state has not changed unexpectedly.</p>
<p>Keep the first version small</p>
<p>A console interface and in-memory data can be enough to demonstrate the rules. Add a database or web API only after you can explain the basic behaviour. Clearly document that in-memory data disappears when the process stops; do not describe the prototype as production-ready.</p>
<p>Test what the user can observe</p>
<p>A test should verify the result and the relevant state. For example, after a successful checkout, the copy should no longer be available. After a rejected checkout, the original borrower should remain unchanged. Printing a message without checking state can hide a broken implementation.</p>
<p>When you add concurrency or persistence, revisit the rules. Two requests arriving together require more than a check followed by an unprotected update. Keep that limitation explicit in the beginner version instead of claiming it solves every case.</p>
<p>Make the README useful</p>
<p>Include how to run the program, example inputs, expected outcomes, the data model, and known limitations. Explain one bug you found and the test that now catches it. This is stronger evidence of learning than a long list of technologies.</p>
<p>AI can propose edge cases and explain unfamiliar code. You still need to run the examples and understand the decisions. Never claim a test passed unless you executed it.</p>
<p>This article is published by ScholarLogic, an IT training provider in Bengaluru. Explore the Java learning path: <a href="https://scholarlogic.net/java-training-in-bangalore/">https://scholarlogic.net/java-training-in-bangalore/</a></p>
<p>Prepared with AI assistance. The application described here is a suggested practice exercise using synthetic data.</p>
]]></content:encoded></item></channel></rss>