‘Weirdo’ is based on the adjective weird. It can be used both negatively as an insult and positively as a compliment.