4.数据建模
np.set_printoptions(suppress = True) # 不使用科学计数法 model = LinearRegression(fit_intercept = True) # 建模:算法、方程 model.fit(X_train, y_train) # 建模获取了斜率,斜率有大有小,有正有负 # 斜率为正代表正相关(面积),为负代表负相关(犯罪率) display(model.coef_, model.intercept_)
5.模型验证
# 模型预测的结果:y_ y_ = model.predict(X_test).round(2) # 展示前 30 个: display(y_[:30]) # 展示真实结果的前 30 个: display(y_test[:30])
算法的预测难免会有异常值,这是 不可避免的!
6.模型评估
# 最大值是 1,最小值可以小于 0 # 这个指标越接近 1,说明算法越优秀 model.score(X_test, y_test)
# 再来判断一下训练数据的得分 model.score(X_train, y_train)
显然,训练数据的得分是高的,这就好比我们在考试前都会做模拟题,我们如果考试卷的大部分题目都和模拟题是一样的,那么我们的分数就会高一些,如果考试的题目都是新题,那么我们的分数就会低一些
当然,我们评测数据不止这一个方法,下面简单介绍一下别的方法:
# 最小二乘法 from sklearn.metrics import mean_squared_error # 这个是测试数据,对应的是 20% y_pred = model.predict(X_test) y_true = y_test mean_squared_error(y_true, y_pred)
我们再来看那 80 % 的训练数据:
# 80% 的训练数据: mean_squared_error(y_train, model.predict(X_train))
注意我们这里的分数是error,即 越小越好!