------
## 最终结论
```python
def min_set_size(arr):
    from collections import Counter
    
    # Step 1: Count the occurrences of each integer
    count = Counter(arr)
    
    # Step 2: Sort the occurrences from highest to lowest
    sorted_counts = sorted(count.values(), reverse=True)
    
    # Step 3: Remove at least half of the integers
    half_size = len(arr) // 2
    removed_count = 0
    set_size = 0
    
    for c in sorted_counts:
        removed_count += c
        set_size += 1
        if removed_count >= half_size:
            break
            
    return set_size
```