西瓜书(周志华)__笔记(第一章 绪论)

目录

1.1引言
1.2基本术语
1.3假设空间
1.4归纳偏好
1.5发展历程
1.6应用现状
1.7阅读材料

一、基本术语

1、 一个样本的属性,如西瓜的色泽、根蒂、敲声
2、 属性上的取值,称为属性值。如色泽是青绿的还是乌黑的。
3、 属性张成的空间称为属性空间,或样本空间,或输入空间。例如我们以色泽、根蒂、敲声作为西瓜的三个属性,构造出一个三维的空间,称为属性空间。
4、 一般令 D={x1,x2,…,xm} 表示包含m个西瓜的数据集。而每一个西瓜则有 xi= {xi1, xi2, xi3} 三个属性。

5、 分类、回归、聚类的区别。
分类:表示我们预测的是离散值,如好瓜与坏瓜。
回归:表示我们预测的是连续值,如西瓜成熟度为0.97、0.37。
聚类:所要划分的类是我们未知的。

6、 监督学习无监督学习:分类和回归是前者的代表,而聚类则是后者的代表。

二、假设空间

归纳:从特殊到一般的泛化过程
演绎:从一般到特殊的特化过程

版本空间:可能有多个假设与训练集的一致,即存在着一个与训练集一致的“假设集合”,我们称之为版本空间。

三、归纳偏好

NFL定理(No Free Lunch Theorem):无论算法LA多聪明,LB多笨拙,但是他们的期望性是一样的。
证明如下:
在这里插入图片描述

### 周志华机器学习》第十章实验:集成方法 #### 集成方法概述 周志华所著的《机器学习》一中,第十章主要讨论了集成方法。该章节介绍了通过组合多个模型来提高预测性能的方法[^2]。 #### 实验目标 本实验旨在利用Python实现几种常见的集成方法,包括Bagging、Boosting以及Stacking,并应用这些技术解决分类问题。 #### 所需库安装 为了顺利完成此实验,请确保已安装以下Python库: ```bash pip install numpy pandas scikit-learn matplotlib seaborn ``` #### 数据准备 选取UCI Machine Learning Repository中的数据集作为训练样本,例如著名的鸢尾花(Iris)数据集用于演示目的。可以使用`sklearn.datasets`模块加载内置的数据集。 ```python from sklearn import datasets import pandas as pd iris = datasets.load_iris() X = iris.data # 特征矩阵 y = iris.target # 目标向量 df = pd.DataFrame(data=np.c_[iris['data'], iris['target']], columns=iris['feature_names'] + ['target']) print(df.head()) ``` #### Bagging算法实践 Bagging(Bootstrap Aggregating),即自助聚合法是一种减少方差的有效手段之一。下面展示如何基于决策树构建一个简单的Bagging分类器。 ```python from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import BaggingClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 划分训练集与测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3) # 初始化基估计器 base_estimator = DecisionTreeClassifier(max_depth=1) # 创建并拟合bagging分类器 clf_bagging = BaggingClassifier(base_estimator=base_estimator, n_estimators=100, random_state=42).fit(X_train, y_train) # 输出准确率 acc = accuracy_score(y_true=y_test, y_pred=clf_bagging.predict(X_test)) print(f'Accuracy of bagging classifier on testing set: {acc:.2f}') ``` #### Boosting算法实践 AdaBoost是最早提出的提升方法之一,在每次迭代过程中调整权重使得错误分类实例获得更高关注。这里给出一段简单代码片段说明其工作原理。 ```python from sklearn.ensemble import AdaBoostClassifier # 构建adaboost分类器 clf_adaboost = AdaBoostClassifier(n_estimators=50, learning_rate=1., algorithm='SAMME.R', base_estimator=None, random_state=42) # 训练模型 clf_adaboost.fit(X_train, y_train) # 测试模型表现 accuracy_boosted = clf_adaboost.score(X_test, y_test) print('Adaboost Accuracy:', round(accuracy_boosted * 100, 2), '%') ``` #### Stacking算法实践 堆叠(Stacking)涉及创建元模型(meta-models),它接收初级模型(primary models)输出的概率分布作为输入特征来进行最终预测。此处仅提供概念性指导而非具体编码细节;读者可根据实际需求自行探索更复杂的架构设计思路。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值