提交 8081a206 编写于 作者: P Peter Ho

第二章完毕

上级 3a78caf9
...@@ -1112,7 +1112,7 @@ full_pipeline = FeatureUnion(transformer_list=[ ...@@ -1112,7 +1112,7 @@ full_pipeline = FeatureUnion(transformer_list=[
> >
> 如果你在上面代码中的`cat_pipeline`流水线使用`LabelBinarizer`转换器会导致执行错误,解决方案是用上文提到的`CategoricalEncoder`转换器来代替: > 如果你在上面代码中的`cat_pipeline`流水线使用`LabelBinarizer`转换器会导致执行错误,解决方案是用上文提到的`CategoricalEncoder`转换器来代替:
> >
> ``` > ```python
> cat_pipeline = Pipeline([ > cat_pipeline = Pipeline([
> ('selector', DataFrameSelector(cat_attribs)), > ('selector', DataFrameSelector(cat_attribs)),
> ('cat_encoder', CategoricalEncoder(encoding="onehot-dense")), > ('cat_encoder', CategoricalEncoder(encoding="onehot-dense")),
...@@ -1258,7 +1258,7 @@ Standard deviation: 2493.98819069 ...@@ -1258,7 +1258,7 @@ Standard deviation: 2493.98819069
判断没错:决策树模型过拟合很严重,它的性能比线性回归模型还差。 判断没错:决策树模型过拟合很严重,它的性能比线性回归模型还差。
现在再尝试最后一个模型:`RandomForestRegressor`。第7章我们会看到,随机森林是通过用特征的随机子集训练许多决策树。在其它多个模型之上建立模型为集成学习(Ensemble Learning),它是推进 ML 算法的一种好方法。我们会跳过大部分的代码,因为代码本质上和其它模型一样: 现在再尝试最后一个模型:`RandomForestRegressor`。第7章我们会看到,随机森林是通过用特征的随机子集训练许多决策树。在其它多个模型之上建立模型为集成学习(Ensemble Learning),它是推进 ML 算法的一种好方法。我们会跳过大部分的代码,因为代码本质上和其它模型一样:
```python ```python
>>> from sklearn.ensemble import RandomForestRegressor >>> from sklearn.ensemble import RandomForestRegressor
...@@ -1324,7 +1324,7 @@ grid_search.fit(housing_prepared, housing_labels) ...@@ -1324,7 +1324,7 @@ grid_search.fit(housing_prepared, housing_labels)
{'max_features': 6, 'n_estimators': 30} {'max_features': 6, 'n_estimators': 30}
``` ```
> 提示:因为 30 是`n_estimators`的最大值,你也应该估计更高的值,因为这个值会持续提升。 > 提示:因为 30 是`n_estimators`的最大值,你也应该估计更高的值,因为评估的分数可能会随`n_estimators`的增大而持续提升。
你还能直接得到最佳的估计器: 你还能直接得到最佳的估计器:
...@@ -1422,7 +1422,7 @@ array([ 7.14156423e-02, 6.76139189e-02, 4.44260894e-02, ...@@ -1422,7 +1422,7 @@ array([ 7.14156423e-02, 6.76139189e-02, 4.44260894e-02,
(8.4130896890070617e-05, 'ISLAND')] (8.4130896890070617e-05, 'ISLAND')]
``` ```
有了这个信息,你就可以丢弃一些不那么重要的特征(比如,显然只要一个分类`ocean_proximity`就够了,所以可以丢弃掉其它的)。 有了这个信息,你就可以丢弃一些不那么重要的特征(比如,显然只要一个`ocean_proximity`的类型(INLAND)就够了,所以可以丢弃掉其它的)。
你还应该看一下系统犯的误差,搞清为什么会有些误差,以及如何改正问题(添加更多的特征,或相反,去掉没有什么信息的特征,清洗异常值等等)。 你还应该看一下系统犯的误差,搞清为什么会有些误差,以及如何改正问题(添加更多的特征,或相反,去掉没有什么信息的特征,清洗异常值等等)。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册