## 2.数据预测

#### 2.1 数据预处理

```# 数据集
datasets_X = [1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018]
datasets_Y = [14.64, 14.03, 13.38, 12.86, 12.41, 12.29, 12.4, 12.09, 12.1, 12.14, 11.95, 11.9, 11.93, 12.1, 12.08, 12.37, 12.07, 12.95, 12.43, 10.94]
test_X = [2019]

# 数据预处理
dataset_length = len(datasets_X)
test_length = len(test_X)
# 将数据转化为numpy数组
datasets_X = np.array(datasets_X).reshape([dataset_length, 1])
test_X = np.array(test_X).reshape([test_length, 1])
datasets_Y = np.array(datasets_Y)```

#### 2.2 数据可视化

```# 构造多项式特征
poly_reg = PolynomialFeatures(degree=2)
X_poly = poly_reg.fit_transform(datasets_X)

# 使用线性回归模型学习X_poly和datasets_Y之间的映射关系
lin_reg = LinearRegression()
lin_reg.fit(X_poly, datasets_Y)

# 数据可视化

# 蓝色显示训练数据点
plt.scatter(datasets_X, datasets_Y, color='blue')

# X轴
my_x_ticks = np.arange(1998, 2020, 1)
plt.xticks(my_x_ticks)

# 绘制线
X = np.arange(1998, 2020).reshape([-1, 1])
plt.plot(X, lin_reg.predict(poly_reg.fit_transform(X)), color='black')

plt.xlabel('Years')
plt.ylabel('Born rate')
plt.show() ```

`poly_reg = PolynomialFeatures(degree=3)`

#### 2.3 数据建模

```# 数据建模
# 构造三次多项式特征
poly_reg = PolynomialFeatures(degree=3)
X_poly = poly_reg.fit_transform(datasets_X)

# 使用线性回归模型学习X_poly和datasets_Y之间的映射关系
lin_reg_3 = LinearRegression()
lin_reg_3.fit(X_poly, datasets_Y)

data = poly_reg.fit_transform(test_X)
pred = lin_reg_3.predict(data)
print(pred)```

​Python实用宝典 (pythondict.com)