Skip to content

Commit

Permalink
Merge pull request #64 from statisticsnorway/data_leakage_test
Browse files Browse the repository at this point in the history
Data leakage test
  • Loading branch information
jep739 authored Dec 2, 2024
2 parents 941fffa + 72995e6 commit 20cd000
Show file tree
Hide file tree
Showing 13 changed files with 2,645 additions and 1,084 deletions.
184 changes: 52 additions & 132 deletions poetry.lock

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ graphviz = "^0.20.1"
xgboost = "^2.0.3"
numpy = "^1.26.4"
shap = "^0.45.1"
ssb-eimerdb = "^0.1.8"
tensorflow = "^2.16.1"
scikeras = "^0.13.0"
pyreadr = "^0.5.0"
Expand All @@ -34,6 +33,8 @@ dash = "^2.17.1"
holoviews = "^1.19.1"
dash-bootstrap-components = "^1.6.0"
dash-leaflet = "^1.0.15"
pyarrow = "14.0.2"
polars = "^1.14.0"

[tool.poetry.group.dev.dependencies]
pytest = ">=7.1.3"
Expand Down
89 changes: 73 additions & 16 deletions src/extra/fun/banneord.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,11 @@ def holymoly(year, start_year, words):
skjema_df.columns = skjema_df.columns.str.lower() # Convert column names to lower case

happy_days.append(skjema_df)

# Concatenate all DataFrames into a single DataFrame
happy_days = pd.concat(happy_days, ignore_index=True)


def count_words_in_row(row, words):
count = 0
exclamation_count = 0
Expand Down Expand Up @@ -142,6 +143,61 @@ def count_words_in_row(row, words):
happy_days['n2'] = happy_days['nacef_5'].str[:2]

happy_days = happy_days.reset_index(drop=True)

# Dictionary for hard-keyed replacements
replacement_dict = {
'41': 'Oppføring av bygninger (41)',
'42': 'Anleggsvirksomhet (42)',
'43': 'Spesialisert bygge-og anleggsvirksomhet (43)',
'45': 'Handel med reparasjon av motorvogner (45)',
'46': 'Agentur- og engroshandel, unntatt med motorvogner (46)',
'47': 'Detaljhandel, unntatt med motorvogner (47)',
'56': 'Serveringsvirksomhet (56)',
'62': 'Tjenester tilknyttet informasjonsteknologi (62)',
'68': 'Omsetning og drift av fast eiendom (68)',
'69': 'Juridisk og regnskapsmessig tjenesteyting (69)',
'70': 'Hovedkontortjenester, administrativ rådgivning (70)',
'71': 'Arkitektvirksomhet og teknisk konsulentvirksomhet, og teknisk prøving og analyse (71)',
'72': 'Forskning og utviklingarbeid (72)',
'73': 'Annonse- og reklamevirksomhet og markedsundersøkelser (73)',
'74': 'Annen faglig, vitenskapelig og teknisk virksomhet (74)',
'77': 'Utlei- og leasingvirksomhet (77)',
'78': 'Arbeidskrafttjenester (78)',
'79': 'Reisebyrå- og reisarrangeørvirksomhet og tilknyttede tjenester (79)',
'80': 'Vakttjeneste og etterforsking (80)',
'81': 'Tjenester tilknyttet eiendomsdrift (81)',
'82': 'Annen forretningsmessig tjenesteyting (82)',
'95': 'Reparasjon av datamaskiner, husholdingsvarer og varer til personlig bruk (95)',
'96': 'Annen personlig tjenesteyting (96)'
}

replacement_dict_n3 = {
'41.1': 'Utvikling av byggeprosekter (41.1)',
'41.2': 'Oppføring av bygninger (41.2)',
'43.1': 'Riving og grunnarbeid (43.1)',
'43.2': 'Elektrisk installasjonsarbeid, VVS-arbeid og annet installasjonsarbeid (43.2)',
'45.2': 'Vedlikehold og reparasjon av motorvogner, unntatt motorsykler (45.2)',
'46.2': 'Engroshandel med jordbruksråvarer og levende dyr (46.2)',
'46.3': 'Engroshandel med nærings-og sytelsesmidler (46.3)',
'46.4': 'Engroshandel med husholdningsvarer og varer til personlig bruk (46.4)',
'46.6': 'Engroshandel med andre maskiner og annet utstyr (46.6)',
'46.7': 'Engroshandel med spesialisert vareutvalg ellers (46.7)',
'47.1': 'Butikkhandel med bredt vareutvalg (47.1)',
'47.3': 'Detaljhandel med drivstoff til motorvogner (47.3)',
'47.5': 'Butikkhandel med andre husholdingsvarer i spesialforretninger (47.5)',
'47.6': 'Butikkhandel med bøker, musikkartikler og andre fritidsartikler i spesialforretninger (47.6)',
'47.7': 'Annen butikkhandel i spesialforretninger (47.7)',
'68.2': 'Utleie av egen eller leid fast eiendom (68.2)',
'69.2': 'Regnskap, revisjon og skatterådgivning (69.2)',
'71.1': 'Arkitektvirksomhet og teknisk konsulentvirksomhet (71.1)',
'77.3': 'Utleie og leasing av andre maskiner, og annet utstyr og materiell (77.3)',
'81.2': 'Rengjøringsvirksomhet (81.2)'
}

# Replace values in the 'n2' column
happy_days['n2'] = happy_days['n2'].replace(replacement_dict)

happy_days['n3'] = happy_days['n3'].replace(replacement_dict_n3)

# sort exclamation_count and count
happy_days = happy_days.sort_values(by=["exclamation_count", "count"], ascending=False)
Expand Down Expand Up @@ -270,6 +326,7 @@ def static_barchart(df):

# Sort the DataFrame by 'count' in descending order
df = df.sort_values(by='count', ascending=False)


# Create a horizontal bar chart with a predefined color sequence
fig = px.bar(
Expand All @@ -279,9 +336,9 @@ def static_barchart(df):
color='n2', # Color bars by 'n2'
color_discrete_sequence=px.colors.sequential.Viridis, # Use the Viridis color sequence
orientation='h', # Make the bars horizontal
height=1200, # Set height of the plot
width=900, # Set width of the plot
title='The total amount of swear words used per n2 from 2017 to 2021' # Add title
height=1400, # Set height of the plot
width=2800, # Set width of the plot
title='Total banneord brukt per n2 fra 2017 til 2021' # Add title
)

# Ensure y-axis categories are sorted by 'count'
Expand Down Expand Up @@ -309,9 +366,9 @@ def static_barchart_n3(df):
color='n3', # Color bars by 'n2'
color_discrete_sequence=px.colors.sequential.Viridis, # Use the Viridis color sequence
orientation='h', # Make the bars horizontal
height=1200, # Set height of the plot
width=900, # Set width of the plot
title='The total amount of swear words used per n3 from 2017 to 2021' # Add title
height=1400, # Set height of the plot
width=2800, # Set width of the plot
title='Total banneord brukt per n3 fra 2017 til 2021' # Add title
)

# Ensure y-axis categories are sorted by 'count'
Expand All @@ -337,9 +394,9 @@ def static_barchart_exclamation(df):
color='n2', # Color bars by 'n2'
color_discrete_sequence=px.colors.sequential.Viridis, # Use the Viridis color sequence
orientation='h', # Make the bars horizontal
height=1200, # Set height of the plot
width=900, # Set width of the plot
title='The Total Explanation Points used per n2 from 2017 to 2021' # Add title
height=1400, # Set height of the plot
width=2800, # Set width of the plot
title='Total utropstegn brukt per n2 fra 2017 til 2021' # Add title
)

# Apply a logarithmic scale to the x-axis
Expand Down Expand Up @@ -370,9 +427,9 @@ def static_barchart_exclamation_n3(df):
color='n3', # Color bars by 'n2'
color_discrete_sequence=px.colors.sequential.Viridis, # Use the Viridis color sequence
orientation='h', # Make the bars horizontal
height=900, # Set height of the plot
width=800, # Set width of the plot
title='The Total Explanation Points used per n3 from 2017 to 2021' # Add title
height=1400, # Set height of the plot
width=2800, # Set width of the plot
title='Total utropstegn brukt per n3 fra 2017 til 2021' # Add title
)

# Apply a logarithmic scale to the x-axis
Expand Down Expand Up @@ -442,9 +499,9 @@ def middle_finger_barchart(df):
# Update layout
fig.update_layout(
yaxis=dict(range=[-10, df['count'].max() + 20]), # Extend y-axis to make space for knuckles
title='Is the distribution of swear words across industries trying to tell us something? 🤷‍♂️',
height=800,
width=1000,
title='Prøver fordelingen av banneord på tvers av bransjer å fortelle oss noe?? 🤷‍♂️',
height=1500,
width=900,
showlegend=False # Hide legend if you don't want to show it
)

Expand Down
8 changes: 8 additions & 0 deletions src/extra/nni tester/NNI Master.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,14 @@
"\n",
"nni.evaluate_varehandel(year, start_year)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "12",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
Expand Down
Loading

0 comments on commit 20cd000

Please sign in to comment.