栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

广义线性模型

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

广义线性模型

这里写目录标题
  • 概述
  • 理论推导
  • 线性回归算法
  • 实验步骤
    • 1 安装并引入必要的库
    • 2 数据分析处理
      • 2.1 加载数据
      • 2.2 拆分数据
    • 3 拟合预测
      • 3.1 线性回归模型
      • 3.2 岭回归

概述

理论推导


线性回归算法

实验步骤 1 安装并引入必要的库
!pip install numpy==1.16.0
!pip install scikit-learn==0.22.1
import numpy as np
from sklearn import datasets, linear_model, model_selection
2 数据分析处理

2.1 加载数据

我们需要从sklearn的datasets导入数据集并对数据集命名:

diabetes = datasets.load_diabetes()

现在我们来看看diabetes数据集的类型和数据。 该类型应该是’Bunch’,它是一个类似于字典的对象,特别适用于加载sklearn内部示例数据集:

print(type(diabetes))
print(diabetes)

让我们来看看这个数据集的描述(description)了解更多的信息:

print(diabetes.DESCR)

让我们来看看这个数据集的样本特征集和样本标签:

print('******data******')
print(diabetes.data)
print('******target******')
print(diabetes.target)

让我们来看看这个数据集的样本特征集和样本标签的形状。 注意,样本特征集的形状是一个元组:

print (diabetes.data.shape)
print (diabetes.target.shape)
2.2 拆分数据

利用model_seletion模块中的train_test_split函数,用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集样本、测试集样本、训练集标签、测试集标签,并分别被定义为:X_train, X_test, y_train, y_test:

X_train, X_test, y_train, y_test = model_selection.train_test_split(diabetes.data,diabetes.target,test_size=0.25, random_state=0)

参数解释:

  • diabetes.data:被划分的diabetes样本特征集
  • diabetes.target: 被划分的样本标签
  • test_size:如果是浮点数,在0-1之间,表示样本占比;如果是整数的话就是样本的数量
  • random_state:是随机数的种子

让我们来看看训练集样本X_train、测试集样本X_test、训练集标签y_train、测试集标签y_test:

print('######X_train######')
print(X_train)
print('######X_test######')
print(X_test)
print('######y_train######')
print(y_train)
print('######y_test######')
print(y_test)

让我们来看看训练集样本X_train、测试集样本X_test、训练集标签y_train、测试集标签y_test的形状:

print('######X_train######')
print(X_train.shape)
print('######X_test######')
print(X_test.shape)
print('######y_train######')
print(y_train.shape)
print('######y_test######')
print(y_test.shape)
3 拟合预测 3.1 线性回归模型


现在创建一个名为regr的LinearRegression实例:

regr = linear_model.LinearRegression()

利用regr模型训练X_train和y_train:

regr.fit(X_train, y_train)

回归评价:

print('Coefficients:%s, intercept %s' % (regr.coef_,regr.intercept_))
print("Residual sum of squares: %.2f"% np.mean((regr.predict(X_test) - y_test) ** 2))
print('Score: %.2f' % regr.score(X_test, y_test))
3.2 岭回归


现在创建一个名为regr_R的Ridge实例:

regr_R = linear_model.Ridge()

利用regr_R模型训练X_train和y_train:

regr_R.fit(X_train, y_train)

回归评价:

print('Coefficients:%s, intercept %s'%(regr_R.coef_,regr_R.intercept_))
print("Residual sum of squares: %.2f"% np.mean((regr_R.predict(X_test) - y_test) ** 2))
print('Score: %.2f' % regr_R.score(X_test, y_test))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/589767.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号