function feature_normalization(df_train, df_test)
println("BEFORE NORMALIZATION")
minval= [0,0,0]
diffval = [0,0,0]

 for i in 4:length(df_train) #iterate through each column of df (the dataframe), starting with column 2. You may want to start with column 4 in the actual project if columns 1-3 will are constants for pmid, class, etc.
   min_val = minimum(df_train[i]) #get the minimum value in column i
   max_val = maximum(df_train[i]) #get the maximum value in column i
   diff_val = max_val .- min_val #get the difference between min and max values for column i
   if diff_val == 0
     df_train[i] = 0
   else
      df_train[i] = (df_train[i] .- min_val) ./ diff_val #normalize column i
   end
   push!(minval, min_val)
   push!(diffval, diff_val)
 end

 for i in 4:length(df_train) #iterate through each column of df (the dataframe), starting with column 2. You may want to start with column 4 in the actual project if columns 1-3 will are constants for pmid, class, etc.
   min_val = minval[i] #get the minimum value in column
   diff_val = diffval[i] #get the difference between min and max values for column i
   if diff_val == 0
     df_test[i] = df_test[i]
   else
     df_test[i] = (df_test[i] .- min_val) ./ diff_val #normalize column i
   end
 end
println("AFTER NORMALIZATION")
df = vcat(df_train, df_test)
end
