DEV Community

Cover image for Building a survey-based ML pipeline to find out what's really holding SEE and +2 graduates back
Sandip Subedi
Sandip Subedi

Posted on

Building a survey-based ML pipeline to find out what's really holding SEE and +2 graduates back

Building a survey-based ML pipeline to find out what's really holding SEE and +2 graduates back
The question I couldn't stop thinking about
Every year, hundreds of thousands of students in Nepal finish their SEE or +2 exams and hit the same fork in the road: keep studying, start building skills, or jump into the job market — usually with very little structured guidance. I'd heard the anecdotes a hundred times: "graduates feel unprepared," "the education system doesn't teach real skills," "there's no mentorship." But I hadn't seen actual data behind any of it.

So I built some.

This post walks through a full data science project — survey design, cleaning, exploratory analysis, a custom scoring model, and machine learning — that tries to answer three questions:

What skills are SEE/+2 graduates actually building, and how?

What's really blocking them from feeling career-ready?

What factors predict that readiness — effort, background, or something else?

Getting the data
I designed a 23-question Google Form covering demographics, current activity, skill-building habits (what, why, where, how many hours/week), four Likert-scale questions on career clarity/confidence/awareness, top challenges, career interests, and views on Nepal's education system. It went out primarily through an Instagram channel and pulled in 171 raw responses, cleaned down to 167 after dropping non-consenting and blank submissions.

Worth being upfront about this from the start: Instagram distribution means the sample skews toward urban, digitally active students, disproportionately from Bagmati province. This isn't a nationally representative sample — and every result below should be read with that in mind.

Cleaning: the unglamorous 80%
Google Forms exports are messy by default — full question text as column headers, multi-select checkboxes crammed into single semicolon-separated strings, free-text "Other" answers full of near-duplicates ("not learning", "Not Learning", "no where" all meaning the same thing).

The cleaning pipeline:

Renamed all 23 columns to short, code-friendly names

Converted bucketed answers (age ranges, GPA bands, weekly hours) into numeric midpoints for correlation/modeling, while keeping the original labels for display

Exploded 4 multi-select questions into 34 individual binary columns, folding rare free-text answers into a single Other bucket instead of creating one noisy column per typo

Dropped rows with no consent or with all four core Likert answers blank

That left a clean 167×66 dataset, ready for analysis.

What the data actually shows
Who responded: the sample skews toward Bagmati (37%) and the 19–21 age group, split fairly evenly by gender, with Management and Science as the dominant academic streams.

What they're learning: Programming/Coding (41 respondents) and Data Analyst/Data Science (40) lead, followed by Public Speaking/Communication (35), AI/ML (33), and Graphic Design (31). But 22% of respondents aren't learning any new skill at all — a real gap worth flagging.

Top skills chart
Why and where they learn: "To get a job" and "personal interest" dominate the motivation side. On the source side, YouTube and free content are by far the most common learning channel — institutes, mentors, and paid courses are comparatively underused, despite (as the modeling below shows) being associated with higher readiness.

What's blocking them: financial problems are the single most common challenge (54% of respondents), followed by lack of guidance/mentorship and lack of networking. Poor internet access and family pressure are comparatively minor. This isn't uniform across provinces either — less-connected provinces like Karnali and Sudurpaschim lean more toward financial/infrastructure barriers, while Bagmati's challenge profile leans more toward networking and mentorship gaps.

Top challenges chart
Building a Career Readiness Score
There's no pre-existing "readiness" label in survey data like this — it has to be constructed. I built a transparent, weighted 0–100 score from seven normalized signals:

weights = {
'clarity': 0.20, 'market': 0.15, 'edu': 0.10, 'conf': 0.20,
'hours': 0.15, 'breadth': 0.10, 'challenge_inv': 0.10,
}

Career clarity and confidence get the highest weight since they most directly represent "feeling ready"; active effort (hours invested, skill breadth) and challenge burden are supporting signals. I kept the weights explicit rather than hidden — this is the one place in the whole pipeline that's a judgment call rather than purely mechanical, and it deserves to be visible.

The result: an average score of 50.5/100, with most students landing in the "Medium" band — engaged, but not confidently prepared.

Readiness score distribution
Does GPA or effort predict readiness? Not really.
Here's where it got interesting. I trained two models — Linear Regression as an interpretable baseline, and a Random Forest for non-linear patterns — to predict the readiness score using only context features (demographics, learning habits, career interest). I deliberately excluded the Likert questions that built the score itself, to avoid circular prediction.

Model R² MAE RMSE
Linear Regression -0.26 15.31 19.54
Random Forest 0.12 13.15 16.36
Random Forest beat Linear Regression on every metric — readiness depends on non-linear combinations of context, not a simple additive relationship. That said, an R² of 0.12 is modest, and with only 167 rows and no attitudinal predictors allowed, this model is exploratory and directional, not a precision instrument.

What mattered most, according to feature importance:

Feature importance chart
GPA, whether a student thinks the education system is adequate, and their learning channel (institute or paid course vs. informal self-study) came out as the strongest predictors — ahead of age, gender, or province. Three of the top four predictors are about structural/environmental context, not personal effort. That lines up with the EDA finding that hours invested alone doesn't reliably predict how ready someone feels — how and where someone learns seems to matter more.

So what actually helps?
Putting it together, a few things stood out enough to act on:

Mentorship and networking gaps matter more than skill access. Career-guidance programs should target these specifically rather than assuming more course content is the fix.

Structured learning channels correlate with higher readiness than free YouTube content alone — worth encouraging alongside (not instead of) free resources.

Financial barriers are the single biggest reported challenge. Scholarships and subsidized training pathways would likely move the needle more than another course catalog.

The education-support gap is real. Of the four Likert measures, students rated their formal education as least helpful in preparing them for a career — a disconnect worth deeper, qualitative follow-up.

Limitations, stated plainly
Convenience sample via a single Instagram channel — urban/Bagmati skew, not nationally representative.

Career clarity/confidence/awareness are self-reported and subjective.

n=167 is small for machine learning — treat the model as directional, not predictive.

Cross-sectional data (single point in time) — can't establish causality or track change over time.

Closing thoughts
This was as much an exercise in disciplined data cleaning and honest reporting as it was in modeling. The most useful output wasn't the R² score — it was being able to say, with actual evidence, that the story students tell about "the system doesn't prepare us" is more specific than it sounds: it's not a uniform failure, it's a mentorship and networking gap layered on top of financial constraints, and where someone learns matters more than how many hours they put in.

The full notebook, cleaned dataset, report, and presentation are on GitHub — link below. If you work in EdTech, career guidance, or Nepali education policy, I'd genuinely like to hear what you think.

Tools: Python (pandas, scikit-learn, matplotlib, seaborn) in Jupyter, Google Forms for data collection.

Top comments (0)