次のコードを実行すると、以下のエラーが発生します。 1. エラーの原因 2. エラーを解決する方法を説明してください。
```
import numpy as np
def generate_data(n):
    X = np.random.rand(n, 1)
    y = 1 + X + np.random.rand(n, 1)
    return X, y
X, y = generate_data(100)
X = X.reshape(-1, 1)
y = y.reshape(-1, 1)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
```
1. エラーの原因: このエラーは、yの目的変数がNumpy配列ではなく、ndarrayであるために発生しています。このため、スカラーの配列ではなく、目的変数をndarrayとして扱う必要がある。
2. エラーを解決する方法: エラーを解決するには、以下のようにyをNumpy配列に変換しなければなりません。

```python
import numpy as np
def generate_data(n):
    X = np.random.rand(n, 1)
    y = 1 + X + np.random.rand(n, 1)
    return X, y
X, y = generate_data(100)
X = X.reshape(-1, 1)
y = y.flatten()
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
```