数据挖掘 —— 有监督学习(回归)
数据挖掘 —— 有监督学习(回归)
- 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
数据挖掘 —— 有监督学习(回归)相关推荐
- 机器学习中有监督学习——回归
机器学习中有监督学习--回归 一.引言 本材料参考Andrew Ng大神的机器学习课程 http://cs229.stanford.edu,以及斯坦福无监督学习UFLDL tutorial http: ...
- 数据挖掘 —— 半监督学习(标签传播算法)
数据挖掘 -- 半监督学习(标签传播算法) 标签传播算法 参数解释 代码 结果 标签传播算法 参数解释 标签传播算法要求为标注数据标签为1 LablePropagation(kernel,gamma, ...
- 数据挖掘 —— 无监督学习(关联)
数据挖掘 -- 无监督学习(关联) Apriori算法 代码 结果 Apriori算法 代码 from itertools import combinations def comb(lst):ret= ...
- (数据挖掘 —— 无监督学习(聚类)
数据挖掘 -- 无监督学习(聚类) 1. K-means 1.1 生成指定形状的随机数据 1.2 进行聚类 1.3 结果 2. 系统聚类 2.1 代码 2.2 结果 3 DBSCAN 3.1 参数选择 ...
- 数据挖掘 —— 有监督学习(分类)
数据挖掘 -- 有监督学习(分类) 1. KNN分类算法 2. 决策树分类算法 3. SVM算法简介 4. 分类--集成算法 4.1 随机森林参数介绍 4.2 Adaboost算法参数介绍 5 总结 ...
- NLP-机器学习-监督学习-回归
一个好的总结:机器学习知识点全面总结_GoAI的博客-CSDN博客_机器学习笔记 监督学习和无监督学习很好区分:是否有监督(supervised),就看输入数据是否有标签(label),输入数据有标签 ...
- 数学建模:1.概述 监督学习--回归分析模型
数学建模概述 监督学习-回归分析(线性回归) 监督学习-分类分析(KNN最邻近分类) 非监督学习-聚类(PCA主成分分析& K-means聚类) 随机算法-蒙特卡洛算法 1.回归分析 在统计学 ...
- 数据挖掘之监督学习篇
本文的笔记来源于<<Web 数据挖掘>> Bing Liu著 监督学习:分类(Classification)或归纳学习(Inductive Learning) 1. 基本概念 ...
- 向毕业妥协系列之机器学习笔记:监督学习-回归与分类(一)
目录 一.Machine Learning概念 二.单(双)变量线性回归模型 1.代价函数 2.梯度下降 三.搭建实验环境 一.Machine Learning概念 简单在知乎上搜了一下机器学习的学习 ...
最新文章
- bst latex 最大作者数_latex bst文件怎么用
- JavaScript使用技巧精萃 经典代码收藏版
- Linux下oracle11g 导入导出操作详细
- Java EE过去,现在和云7
- 虎年第一篇-CCNP-第九篇-BGP(一)
- DataList项模板中的div在后台得到方法
- 卷积神经网络(CNN)相关的基础知识
- python github登陆_利用Python模拟GitHub登录!
- ES6小实验-复习字符串
- 数据库与表的操作之SQL Server 2012中的数据类型
- Java——File类,递归
- 从经典到最新前沿,一文概览2D人体姿态估计
- Espresso IdlingResource 测试延时操作的使用
- 锐龙r77700参数 r7 7700功耗 r7 7700核显性能
- git--基本知识点--1--工作区/暂存区/版本库
- 99.扩展.霍尔三维结构方法论 vs 切克兰德方法论
- 服务器您的网络已被劫持请立即修复,网页被劫持并跳转到发布网络的修复方法...
- bp神经网络的主要功能,一文搞定bp神经网络
- OGC入门学习专栏(2.1) - SWE通用数据模型编码标准(写完所有小节再合)
- Intellij idea Tips 之 创建文件自动生成文档描述
热门文章
- Linux 还能这么玩,10 个非常有趣的命令!
- 你们都在用IntelliJ IDEA吗?或许你们需要看一下这篇博文
- Eclipse 4.9 正式发布,支持 Java 11!
- springboot-springSecurity 之 http Basic认证 (四)
- Python 字典类型的使用
- html多重边框,中间空白,CSS揭秘之多重边框的实现
- python 标准错误输出_过程的实时标准输出/错误捕获
- 如何面对边缘计算10个痛点?
- java类加载器_JAVA类加载器
- 成功解决AttributeError: module 'tensorflow.python.training.training' has no attribute 'SummaryWriter'