数据挖掘 —— 有监督学习(回归)

  • 1. 线性回归模型
    • 1.1 线性回归模型
    • 1.2 岭回归模型
    • 1.3 Lasso回归模型
  • 2 逻辑回归模型
  • 3 回归树与提升树
  • 4 总结

1. 线性回归模型

1.1 线性回归模型

from sklearn.linear_model import LinearRegression
LR_model = LinearRegression()
  • LR_model.intercept_ :截距
  • LR_model.coef_ :权重

1.2 岭回归模型

from sklearn.linear_model import Ridge
Ridge_model = Ridge(alpha,max_iter,tol,solver)
  • alpha:正则化强度系数
  • max_iter:最大迭代次数 默认1000
  • tol:精度,默认1e-3
  • solver:求解算法 {‘auto’, ‘svd’, ‘cholesky’, ‘lsqr’, ‘sparse_cg’, ‘sag’, ‘saga’}默认为“auto”
  • random_state:int, RandomState instance, default=None 使用随机平均梯度法时使用的随机样本数
  • Ridge_model.n_iter 模型性质

1.3 Lasso回归模型

from sklearn.Linear_model import Lasso
Lasso_model = Lasso(alpha,max_iter,tol,solver)

2 逻辑回归模型

from sklearn.linear_model import LogisticRegression
logistic_model = LogisticRegression(penalty,tol,C,max_iter,solver)
  • penalty 为正则化的惩罚方法:"l1"为一范数惩罚,"l2"为二范数惩罚
  • C:默认为1,正则化强度,值越小,正则化强度越大
  • solver:{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default=’lbfgs’

3 回归树与提升树

from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import GradientBoostingRegressor
GradientBoostingClassifier(max_depth.n_estimators,learning_rate,criterion)
GradientBoostingRegressor()
  • max_depth:默认为3 决定了每个决策树的的节点深度,
  • learning_rate:学习速率
  • criterion:优化算法

4 总结

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression,Ridge,Lasso,LogisticRegression
from sklearn.metrics import mean_squared_error,accuracy_score,f1_score,precision_score,recall_score
from sklearn.ensemble import GradientBoostingRegressorfeatures = pd.read_excel("./data.xlsx",sheet_name = "features")
label = pd.read_excel("./data.xlsx",sheet_name = "label")# ————————添加线性回归模型
# 训练集拆分
def data_split(x,y):X_tt,X_validation,Y_tt,Y_validation = train_test_split(x,y,test_size = 0.2)X_train,X_test,Y_train,Y_test = train_test_split(X_tt,Y_tt,test_size = 0.25)return X_train,X_validation,X_test,Y_train,Y_validation,Y_test
# 自定义回归模型评价参数
def regression_metrics(model,X_train,X_validation,X_test,Y_train,Y_validation,Y_test):print("train:")print("\tMSE:",mean_squared_error(model.predict(X_train),Y_train))print("validation:")print("\tMSE:",mean_squared_error(model.predict(X_validation),Y_validation))print("test:")print("\tMSE:",mean_squared_error(model.predict(X_test),Y_test))
# 自定义分类器判别参数
def classifier_metrics(model,X_train,X_validation,X_test,Y_train,Y_validation,Y_test):def self_metrics(y1,y2,name):print(name)print("\taccuracy score:",accuracy_score(y1,y2))print("\tf1 score:",f1_score(y1,y2))print("\trecall score:",recall_score(y1,y2))print("\tprecision score:",precision_score(y1,y2))self_metrics(Y_train,model.predict(X_train),"train:")self_metrics(Y_validation,model.predict(X_validation),"validation:")self_metrics(Y_test,model.predict(X_test),"test:")print(model.predict(X_validation))
# ————构建线性回归模型
X = features.iloc[:,[2,3]].values
Y = features.iloc[:,1].values
X_train,X_validation,X_test,Y_train,Y_validation,Y_test = data_split(X,Y)LR_model = LinearRegression()
LR_model.fit(X_train,Y_train)
print("*"*20,"LinearRegression","*"*20)
print("coef:",LR_model.coef_)
print("intercept:",LR_model.intercept_)
regression_metrics(LR_model,X_train,X_validation,X_test,Y_train,Y_validation,Y_test)# ————构建岭回归模型
X = features.iloc[:,[2,3]].values
Y = features.iloc[:,1].values
X_train,X_validation,X_test,Y_train,Y_validation,Y_test = data_split(X,Y)Ridge_model = Ridge(alpha = 10,max_iter = 1e6,tol=1e-6)
Ridge_model.fit(X_train,Y_train)
print("*"*20,"RidgeRegression","*"*20)
print("coef:",Ridge_model.coef_)
print("intercept:",Ridge_model.intercept_)
regression_metrics(Ridge_model,X_train,X_validation,X_test,Y_train,Y_validation,Y_test)# ————Lasso回归模型
X = features.iloc[:,[2,3]].values
Y = features.iloc[:,1].values
X_train,X_validation,X_test,Y_train,Y_validation,Y_test = data_split(X,Y)lasso_model = Lasso(alpha = 0,max_iter = 1e6,tol=1e-6)
lasso_model.fit(X_train,Y_train)
print("*"*20,"LassoRegression","*"*20)
print("coef:",lasso_model.coef_)
print("intercept:",lasso_model.intercept_)
regression_metrics(lasso_model,X_train,X_validation,X_test,Y_train,Y_validation,Y_test)# ————逻辑回归模型
X = features.values
Y = label.values
X_train,X_validation,X_test,Y_train,Y_validation,Y_test = data_split(X,Y)logistic_model = LogisticRegression(penalty = "l2",C = 0.51)
logistic_model.fit(X_train,Y_train)
print("*"*20,"LogisticRegression","*"*20)
print("coef:",logistic_model.coef_)
print("intercept:",logistic_model.intercept_)
classifier_metrics(logistic_model,X_train,X_validation,X_test,Y_train,Y_validation,Y_test)# ————构建梯度提升回归树模型
X = features.iloc[:,[2,3]].values
Y = features.iloc[:,1].values
X_train,X_validation,X_test,Y_train,Y_validation,Y_test = data_split(X,Y)GBDT = GradientBoostingRegressor(n_estimators = 1000,learning_rate = 0.5)
GBDT.fit(X_train,Y_train)
print("train score:",GBDT.train_score_)
regression_metrics(GBDT,X_train,X_validation,X_test,Y_train,Y_validation,Y_test)

by CyrusMay 2022 04 05

数据挖掘 —— 有监督学习(回归)相关推荐

  1. 机器学习中有监督学习——回归

    机器学习中有监督学习--回归 一.引言 本材料参考Andrew Ng大神的机器学习课程 http://cs229.stanford.edu,以及斯坦福无监督学习UFLDL tutorial http: ...

  2. 数据挖掘 —— 半监督学习(标签传播算法)

    数据挖掘 -- 半监督学习(标签传播算法) 标签传播算法 参数解释 代码 结果 标签传播算法 参数解释 标签传播算法要求为标注数据标签为1 LablePropagation(kernel,gamma, ...

  3. 数据挖掘 —— 无监督学习(关联)

    数据挖掘 -- 无监督学习(关联) Apriori算法 代码 结果 Apriori算法 代码 from itertools import combinations def comb(lst):ret= ...

  4. (数据挖掘 —— 无监督学习(聚类)

    数据挖掘 -- 无监督学习(聚类) 1. K-means 1.1 生成指定形状的随机数据 1.2 进行聚类 1.3 结果 2. 系统聚类 2.1 代码 2.2 结果 3 DBSCAN 3.1 参数选择 ...

  5. 数据挖掘 —— 有监督学习(分类)

    数据挖掘 -- 有监督学习(分类) 1. KNN分类算法 2. 决策树分类算法 3. SVM算法简介 4. 分类--集成算法 4.1 随机森林参数介绍 4.2 Adaboost算法参数介绍 5 总结 ...

  6. NLP-机器学习-监督学习-回归

    一个好的总结:机器学习知识点全面总结_GoAI的博客-CSDN博客_机器学习笔记 监督学习和无监督学习很好区分:是否有监督(supervised),就看输入数据是否有标签(label),输入数据有标签 ...

  7. 数学建模:1.概述 监督学习--回归分析模型

    数学建模概述 监督学习-回归分析(线性回归) 监督学习-分类分析(KNN最邻近分类) 非监督学习-聚类(PCA主成分分析& K-means聚类) 随机算法-蒙特卡洛算法 1.回归分析 在统计学 ...

  8. 数据挖掘之监督学习篇

    本文的笔记来源于<<Web 数据挖掘>> Bing Liu著 监督学习:分类(Classification)或归纳学习(Inductive Learning) 1. 基本概念 ...

  9. 向毕业妥协系列之机器学习笔记:监督学习-回归与分类(一)

    目录 一.Machine Learning概念 二.单(双)变量线性回归模型 1.代价函数 2.梯度下降 三.搭建实验环境 一.Machine Learning概念 简单在知乎上搜了一下机器学习的学习 ...

最新文章

  1. bst latex 最大作者数_latex bst文件怎么用
  2. JavaScript使用技巧精萃 经典代码收藏版
  3. Linux下oracle11g 导入导出操作详细
  4. Java EE过去,现在和云7
  5. 虎年第一篇-CCNP-第九篇-BGP(一)
  6. DataList项模板中的div在后台得到方法
  7. 卷积神经网络(CNN)相关的基础知识
  8. python github登陆_利用Python模拟GitHub登录!
  9. ES6小实验-复习字符串
  10. 数据库与表的操作之SQL Server 2012中的数据类型
  11. Java——File类,递归
  12. 从经典到最新前沿,一文概览2D人体姿态估计
  13. Espresso IdlingResource 测试延时操作的使用
  14. 锐龙r77700参数 r7 7700功耗 r7 7700核显性能
  15. git--基本知识点--1--工作区/暂存区/版本库
  16. 99.扩展.霍尔三维结构方法论 vs 切克兰德方法论
  17. 服务器您的网络已被劫持请立即修复,网页被劫持并跳转到发布网络的修复方法...
  18. bp神经网络的主要功能,一文搞定bp神经网络
  19. OGC入门学习专栏(2.1) - SWE通用数据模型编码标准(写完所有小节再合)
  20. Intellij idea Tips 之 创建文件自动生成文档描述

热门文章

  1. Linux 还能这么玩,10 个非常有趣的命令!
  2. 你们都在用IntelliJ IDEA吗?或许你们需要看一下这篇博文
  3. Eclipse 4.9 正式发布,支持 Java 11!
  4. springboot-springSecurity 之 http Basic认证 (四)
  5. Python 字典类型的使用
  6. html多重边框,中间空白,CSS揭秘之多重边框的实现
  7. python 标准错误输出_过程的实时标准输出/错误捕获
  8. 如何面对边缘计算10个痛点?
  9. java类加载器_JAVA类加载器
  10. 成功解决AttributeError: module 'tensorflow.python.training.training' has no attribute 'SummaryWriter'