Internship

Author:

| Size: 4.06 KB

|

#OVERALL PREDICTION OF BUDGET from tkinter import * import pandas as pd import numpy as np from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error import csv      from tkinter import filedialog root=Tk() root.geometry('1370x700+0+0')  root.title('NMRL FBE') header=Frame(root,width=1370,bd=4) header.pack(side=TOP,fill=X)  def submit_path(): #path=e1.get() path = file_path year=int(e2.get())  # Load data from CSV df = pd.read_csv(path) 

Extract years and department names

years = df['Year']
departments = df.columns[1:]  # Exclude the 'Year' column

# Convert to numpy array for modeling
X = np.array(years).reshape(-1, 1)  # Years as input feature

# Create a dictionary to store department-wise forecasted amounts
dept_forecast = {}

# Loop through departments to train individual models (if needed) and store predictions
for dept in departments:
    y = df[dept]  # Forecasted amounts for current department
    
    # Train a linear regression model
    model = LinearRegression()
    model.fit(X, y)
    
    # Store the model for this department
    dept_forecast[dept] = model

# Function to predict total forecasted amount for any given year
def predict_total_forecast(year):
    total_forecast = 0
    for dept, model in dept_forecast.items():
        # Predict forecasted amount for the given year using the model for each department
        forecast_amount = model.predict(np.array(year).reshape(-1, 1))[0]
        total_forecast += forecast_amount
    return total_forecast 
 











# Example: Predict total forecast for year 2025
#a=int(input("Enter your required year:"))
year_to_predict = year
total_forecast_2025 = predict_total_forecast(year_to_predict)

result_text=f'Total forecasted amount for the organization in {year_to_predict}: {total_forecast_2025}'
output=Frame(root,width=1370,bd=6,bg='black')
output.pack(side=TOP)
Label(output,text=result_text,font=('Times New Roman',14,'bold'),fg='aqua',bg='black',bd=6,pady=10).pack(side=TOP)
Button(output,text='Clear Result',width=15,bd=3,command=output.destroy).pack(side=TOP)
#root.destroy()
 

#def submit_year(): #year=e2.get() #return year

#div=e3.get()

def read_csv_file(file_path): with open(file_path, 'r') as file: reader = csv.reader(file) content = [row for row in reader] return content  def browse_files(): global file_path file_path = filedialog.askopenfilename(filetypes=[("CSV files", "*.csv")]) if file_path: content = read_csv_file(file_path) print(file_path) #for row in content: # print(row)  Label(header,text='NMRL FBE',font=('Times New Roman',36,'bold'),fg='black',bg='orange',bd=6,relief='ridge').pack(side=TOP,fill=X) body=Frame(root,width=1370,bd=6,bg='yellowgreen',relief='ridge') body.pack(side=TOP,fill=X)    Label(body,text='Select dataset to predict:',font=('Times New Roman',14,'bold'),bg='yellowgreen',fg='black').pack(side=LEFT) #e1=Entry(body,width=20, font = ('Times New Roman',14,'normal'),bd=4) #e1.pack(side=LEFT,padx=20) browse_button = Button(body, text="Browse Documents", command=browse_files) browse_button.pack(side= LEFT)  Label(body,text='Enter required year:',font=('Times New Roman',14,'bold'),bg='yellowgreen',fg='black').pack(side=LEFT) e2=Entry(body, font = ('Times New Roman',14,'normal'),bd=4) e2.pack(side=LEFT,padx=20)  #Label(body,text='Enter required division:',font=('Times New Roman',14,'bold'),bg='yellowgreen',fg='black').pack(side=LEFT) #e2=Entry(body, font = ('Times New Roman',14,'normal'),bd=4) #e2.pack(side=LEFT,padx=20)  btn_frame=Frame(root,width=1370,bd=4) btn_frame.pack(side=TOP)  sbt_btn=Button(btn_frame,text='Submit',width=15,bd=3,command=submit_path) sbt_btn.pack(side=LEFT)  #sbt_btn=Button(btn_frame,text='Run Model',width=15,bd=3,command=submit_year) #sbt_btn.pack(side=LEFT) 

mainloop()

Attached Files

PREVIEW:

Random Forest.txt - 4.06 KB

DOWNLOAD

File Type: text/plain

PREVIEW:

upd_dummy.txt - 0.18 KB

DOWNLOAD

File Type: text/plain

PREVIEW:

Modified_Gui.txt - 4.03 KB

DOWNLOAD

File Type: text/plain

Comments

No comments yet

Please complete the captcha

7/5/2024

Create new paste with same settings

Not all user generated content is reviewed by AnonPaste. If you believe this paste violates our community guideline or terms of service, please report it here.

Initializing...

Preparing the app. This may take a moment before app is ready.

AnonPaste is a user-generated content hosting service. The platform and its operators are not responsible for content posted by users.