Preheat oven to 325°F. Grease a 9-inch springform pan and line the bottom with parchment paper.
In a large bowl, whisk together flour, cinnamon, baking soda, salt, nutmeg, and ginger.
In another bowl, beat sugar and oil until combined. Add eggs one at a time, mixing well after each. Stir in vanilla.
Gradually add dry ingredients to wet ingredients until just combined. Fold in grated carrots, crushed pineapple, and chopped nuts.
For cheesecake layer, beat cream cheese and sugar until smooth. Add eggs one at a time on low speed. Stir in vanilla and sour cream.
Pour one-third of carrot cake batter into pan. Dollop half the cheesecake batter over it. Add another third of carrot cake batter, then remaining cheesecake batter, finishing with last of carrot cake mixture.
Use a knife or skewer to gently swirl through the layers, creating marbled effect. Don't over-swirl.
Bake for 70-80 minutes until center wobbles slightly. Cool completely in pan, then refrigerate for at least 6 hours.
For frosting, beat cream cheese and butter until smooth. Gradually add powdered sugar, then vanilla and heavy cream. Beat until fluffy.
Remove cheesecake from pan, spread frosting on top, and garnish with chopped nuts if desired. Serve at room temperature.