Both are correct. Although usually when people say "I'm happy for you," there's an undertone of, if not bitterness, then a soft resentment. Like when woman X has been dying to get a child, but can't, and her best friend Y gets one, she might say: "Well, I'm really happy for you." Doesn't mean she's lying; just means exactly that: she's happy for her, but not overall happy with it for herself (in this case, because she wants one herself too).
So, I would go with "I'm happy you have improved." It sounds a lot more natural, and doesn't come with notion that you're detracting something from said happiness (like "I'm happy for you" does).