IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Datawhale task2 --- 机器学习基础 -> 正文阅读

[人工智能]Datawhale task2 --- 机器学习基础

目录

sklearn 代码相关

2.1 sklearn生成数据集

2.2 sklearn 构建完整的回归项目

?评估模型的性能并调参

2.3 回归模型

2.3.1 线性回归模型

2.3.2 多项式回归

2.3.3 广义可加模型(GAM)

2.3.4 回归树

2.3.5 支持向量机回归(SVR)

代码技巧:



sklearn 代码相关

2.1 sklearn生成数据集

sklearn API reference

eg. 生成符合正态分布的聚类数据

from sklearn import datasets
x, y = datasets.make_blobs(n_samples=5000, n_features=2, centers=3)

2.2 sklearn 构建完整的回归项目

  • 明确项目任务:回归/分类
  • 收集数据集并选择合适的特征。
  • 选择度量模型性能的指标。
  • 选择具体的模型并进行训练以优化模型。
    • 特征选择
      • 对测试误差进行估计
        • 训练误差修正:?加入关于特征个数的惩罚
        • 交叉验证:我们把训练样本分成K等分,然后用K-1个样本集当做训练集,剩下的一份样本集为验证集去估计由K-1个样本集得到的模型的精度,这个过程重复K次取平均值得到测试误差的一个估计
    • 压缩估计
      • 将回归系数往零的方向压缩
        • 岭回归
          • from sklearn import linear_model
            reg_rid = linear_model.Ridge(alpha=.5)
            reg_rid.fit(X,y)
            reg_rid.score(X,y)
        • LASSO回归
          • from sklearn import linear_model
            reg_lasso = linear_model.Lasso(alpha = 0.5)
            reg_lasso.fit(X,y)
            reg_lasso.score(X,y)

测试均方误差曲线呈现U型曲线,这表明了在测试误差曲线中有两种力量在互相博弈。增加模型的复杂度,会增加模型的方差,但是会减少模型的偏差,我们要找到一个方差--偏差的权衡,使得测试均方误差最小。

  • ?评估模型的性能并调参

    • 超参数
      • 网格搜索
      • 随即搜索
        • 可以独立于参数数量和可能的值来选择计算成本。
        • 添加不影响性能的参数不会降低效率。

2.3 回归模型

2.3.1 线性回归模型

\widehat{y}=f(w)=w^Tx

求解

L(w)=\sum_{i=1}^{N}||w^Tx_i-y_i||_2^2

利用最小二乘估计,解的

w=(X^TX)^{-1}X^TY

线性回归最小二乘估计\Leftrightarrow噪声\varepsilon \sim N(0,\sigma^2)的极大似然估计

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??\Leftrightarrow X^T(Y-Xw)=0的解, 即YX平面上的投影

代码?

?

?lin_reg.coef_ 为模型系数

2.3.2 多项式回归

?

sklearn.preprocessing.PolynomialFeatures(degree=2, *, interaction_only=False, include_bias=True, order='C')

from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(2)
poly.fit_transform(X)

2.3.3 广义可加模型(GAM)

?pip install pygam

from pygam import LinearGAM
gam = LinearGAM().fit(boston_data[boston.feature_names], y)
gam.summary()

2.3.4 回归树

?sklearn.tree.DecisionTreeRegressor(*, criterion='mse', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, presort='deprecated', ccp_alpha=0.0)

from sklearn.tree import DecisionTreeRegressor    
reg_tree = DecisionTreeRegressor(criterion = "mse",min_samples_leaf = 5)
reg_tree.fit(X,y)
reg_tree.score(X,y)

2.3.5 支持向量机回归(SVR)

?落在f(x)的\varepsilon邻域空间中的样本点不需要计算损失,看为正确的预测

?sklearn.svm.SVR(*, kernel='rbf', degree=3, gamma='scale', coef0=0.0, tol=0.001, C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=-1)

from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler     # 标准化数据
from sklearn.pipeline import make_pipeline   # 使用管道,把预处理和模型形成一个流程

reg_svr = make_pipeline(StandardScaler(), SVR(C=1.0, epsilon=0.2))
reg_svr.fit(X, y)
reg_svr.score(X,y)

代码技巧:

1.?对数据集转换成DataFrame格式的数据

iris_data = pd.DataFrame(X,columns=features)

2.对数据特征进行可视化

marker = ['s','x','o']
for index,c in enumerate(np.unique(y)):
    plt.scatter(x=iris_data.loc[y==c,"sepal length (cm)"],y=iris_data.loc[y==c,"sepal width (cm)"],alpha=0.8,label=c,marker=marker[c])
plt.xlabel("sepal length (cm)")
plt.ylabel("sepal width (cm)")
plt.legend()
plt.show()

3.?使用管道,把预处理和模型形成一个流程

from sklearn.pipeline import make_pipeline   # 使用管道,把预处理和模型形成一个流程

reg_svr = make_pipeline(StandardScaler(), SVR(C=1.0, epsilon=0.2))

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:17:35  更:2021-07-16 11:20:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 9:59:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码