当前位置: 首页 > news >正文

企业网站备案 优帮云长沙市网站开发

企业网站备案 优帮云,长沙市网站开发,网站建设模板购买,如何建立一个网站预算多少过采样和下采样调整不均衡样本的逻辑回归模型 目录 过采样和下采样调整不均衡样本的逻辑回归模型1 过采样1.1 样本不均衡1.2 概念1.3 图片理解1.4 SMOTE算法1.5 算法导入1.6 函数及格式1.7 样本类别可视化理解 2 下采样2.1 概念2.2 图片理解2.3 数据处理理解2.4 样本类别可视化…

过采样和下采样调整不均衡样本的逻辑回归模型

目录

  • 过采样和下采样调整不均衡样本的逻辑回归模型
    • 1 过采样
      • 1.1 样本不均衡
      • 1.2 概念
      • 1.3 图片理解
      • 1.4 SMOTE算法
      • 1.5 算法导入
      • 1.6 函数及格式
      • 1.7 样本类别可视化理解
    • 2 下采样
      • 2.1 概念
      • 2.2 图片理解
      • 2.3 数据处理理解
      • 2.4 样本类别可视化理解
    • 3 实际调整模型

1 过采样


1.1 样本不均衡

数据集中不同类别的样本数量差异很大,通常表现为一个类别的样本数量远多于其他类别

1.2 概念

增加少数类的样本数量,使其样本多的类别样本数量相同。

1.3 图片理解

在这里插入图片描述

1.4 SMOTE算法

在这里插入图片描述

1.5 算法导入

from imblearn.over_sampling import SMOTE

1.6 函数及格式

  • ov = SMOTE(random_state=0),随机抽取函数

random_state是随机种子,保证同一数字时随机抽取数据相同

  • x_ov,y_ov = ov.fit_resample(x_tr_all,y_tr_all)
    • x_ov经过随机抽取,自动拟合后数据,y_ov
    • x_tr_all,y_tr_all

1.7 样本类别可视化理解

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split, cross_val_predict, cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn import metrics
from sklearn.metrics import confusion_matrix
import pylab as mpl# 标准化处理
scaler = StandardScaler()
data = pd.read_csv('creditcard.csv')
a = data[['Amount']]
b = data['Amount']
# z标准化处理Amount,再存Amount中
data['Amount'] = scaler.fit_transform(data[['Amount']])
# 删除time列
data = data.drop(['Time'],axis=1)
# 特征数据x,删除class列
x_all = data.drop(['Class'],axis=1)
# class为标签结果列
y_all = data.Class
# # 训练集特征,测试集特征,训练集结果,测试集结果,test_size抽取的测试集百分比,train_size 抽取的训练集百分比
x_tr_all,x_te_all,y_tr_all,y_te_all = \train_test_split(x_all,y_all, test_size=0.2,random_state=1000)
# 样本不均衡图片
mpl.rcParams['font.sans-serif']=['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus']=False
labels_count = pd.value_counts(y_all)
plt.title('正负样本数1')
plt.xlabel('类别')
plt.ylabel('频数')
labels_count.plot(kind='bar')
plt.show()
# #过采样使样本均衡
from imblearn.over_sampling import SMOTE
ov = SMOTE(random_state=0)
x_tr_ov,y_tr_ov = ov.fit_resample(x_tr_all,y_tr_all)
# 交叉验证
scores = []
c_range = [0.01,0.1,1,10,100]
# 均衡样本正负图像显示
mpl.rcParams['font.sans-serif']=['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus']=False
labels_count = pd.value_counts(y_tr_ov)
plt.title('正负样本数')
plt.xlabel('类别')
plt.ylabel('频数')
labels_count.plot(kind='bar')
plt.show()

在这里插入图片描述

在这里插入图片描述

2 下采样


2.1 概念

减少多数类的样本数量,使其样本少的类别样本数量相同,但可能会丢失重要信息。

2.2 图片理解

在这里插入图片描述

2.3 数据处理理解

  • pt_eg = **data_tr[data_tr[‘Class’] == 0]**找出两类数据
  • ng_eg = data_tr[data_tr[‘Class’] == 1]
  • pt_eg = pt_eg.sample(len(ng_eg))根据少的数据对多的数据进行抽取
  • data_c = pd.concat([pt_eg,ng_eg]),再将两类数据合并

2.4 样本类别可视化理解

代码展示:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from numpy.random import sample
from sklearn.model_selection import train_test_split, cross_val_predict, cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn import metrics
import pylab as mpl# 标准化处理
scaler = StandardScaler()
data = pd.read_csv('creditcard.csv')
a = data[['Amount']]
b = data['Amount']
# z标准化处理Amount,再存Amount中
data['Amount'] = scaler.fit_transform(data[['Amount']])
# 删除time列
data = data.drop(['Time'],axis=1)
# 特征数据x,删除class列
x_all = data.drop(['Class'],axis=1)
# class为标签结果列
y_all = data.Class
# # 训练集特征,测试集特征,训练集结果,测试集结果,test_size抽取的测试集百分比,train_size 抽取的训练集百分比
x_tr_all,x_te_all,y_tr_all,y_te_all = \train_test_split(x_all,y_all, test_size=0.2,random_state=1000)
# 样本不均衡
mpl.rcParams['font.sans-serif']=['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus']=False
labels_count = pd.value_counts(y_all)
plt.title('正负样本数1')
plt.xlabel('类别')
plt.ylabel('频数')
labels_count.plot(kind='bar')
plt.show()
#下采样
## 组合,为后准备,两个表格组合,前datafarme,后serise,添加列,直接赋值
np.random.seed(seed=4)
# 随机种子
x_tr_all['Class'] = y_tr_all
data_tr = x_tr_all
pt_eg = data_tr[data_tr['Class'] == 0]
ng_eg = data_tr[data_tr['Class'] == 1]
pt_eg = pt_eg.sample(len(ng_eg))
data_c = pd.concat([pt_eg,ng_eg])
x_data_c = data_c.drop(['Class'],axis=1)
y_data_c = data_c['Class']
mpl.rcParams['font.sans-serif']=['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus']=False
labels_count = pd.value_counts(y_data_c )
plt.title('正负样本数1')
plt.xlabel('类别')
plt.ylabel('频数')
labels_count.plot(kind='bar')
plt.show()

在这里插入图片描述
在这里插入图片描述

3 实际调整模型

不均衡样本,下采样样本,过采样样本训练模型代码及结果,可以明显看到数据召回率上升。

代码展示:

import time
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from numpy.random import sample
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split, cross_val_predict, cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn import metrics
from sklearn.model_selection import cross_val_score
from sklearn.metrics import confusion_matrix
import pylab as mpl
# 标准化处理
scaler = StandardScaler()
data = pd.read_csv('creditcard.csv')
a = data[['Amount']]
b = data['Amount']
# z标准化处理Amount,再存Amount中
data['Amount'] = scaler.fit_transform(data[['Amount']])
# 删除time列
data = data.drop(['Time'],axis=1)
# 特征数据x,删除class列
x_all = data.drop(['Class'],axis=1)
# class为标签结果列
y_all = data.Class
# # 训练集特征,测试集特征,训练集结果,测试集结果,test_size抽取的测试集百分比,train_size 抽取的训练集百分比
x_tr_all,x_te_all,y_tr_all,y_te_all = \train_test_split(x_all,y_all, test_size=0.2,random_state=1000)
# 样本不均衡
scores = []
c_range = [0.01,0.1,1,10,100]
## 循环测试带入因子
for i in c_range:start_time = time.time()lg = LogisticRegression(C=i,penalty='l2',solver='lbfgs',max_iter=1000)# 模型迭代8次后的所有模型的recall值score = cross_val_score(lg,x_tr_all,y_tr_all,cv=5,scoring='recall')# score的平均值,也就是recall的平均值score_m = sum(score)/len(score)# scores列表添加均值recallscores.append(score_m)end_time = time.time()
best_c = c_range[np.argmax(scores)]
lg = LogisticRegression(C=best_c,penalty='l2',max_iter=1000)
lg.fit(x_te_all,y_te_all)
te_pr = lg.predict(x_te_all)
print("不均衡样本训练")
print(metrics.classification_report(y_te_all,te_pr))# 下采样
np.random.seed(seed=4)
x_tr_all['Class'] = y_tr_all
data_tr = x_tr_all
pt_eg = data_tr[data_tr['Class'] == 0]
ng_eg = data_tr[data_tr['Class'] == 1]
pt_eg = pt_eg.sample(len(ng_eg))
data_c = pd.concat([pt_eg,ng_eg])
x_data_c = data_c.drop(['Class'],axis=1)
# class为标签结果列
y_data_c = data_c.Class
# # 交叉验证
scores = []
c_range = [0.01,0.1,1,10,100]
# 循环测试带入因子
for i in c_range:lg = LogisticRegression(C=i,penalty='l2',solver='lbfgs',max_iter=1000)# 模型迭代8次后的所有模型的recall值score = cross_val_score(lg,x_data_c,y_data_c,cv=5,scoring='recall')# score的平均值,也就是recall的平均值score_m = sum(score)/len(score)# scores列表添加均值recallscores.append(score_m)
best_c = c_range[np.argmax(scores)]
# 根据上面最大判断,建立模型
lg = LogisticRegression(C=best_c,penalty='l2',max_iter=1000)
lg.fit(x_data_c,y_data_c)
te_pr = lg.predict(x_te_all)
print("下采样均衡样本训练")
print(metrics.classification_report(y_te_all,te_pr))# #过采样
scaler = StandardScaler()
data = pd.read_csv('creditcard.csv')
a = data[['Amount']]
b = data['Amount']
# z标准化处理Amount,再存Amount中
data['Amount'] = scaler.fit_transform(data[['Amount']])
# 删除time列
data = data.drop(['Time'],axis=1)
# 特征数据x,删除class列
x_all = data.drop(['Class'],axis=1)
# class为标签结果列
y_all = data.Class
x_tr_all,x_te_all,y_tr_all,y_te_all = \train_test_split(x_all,y_all, test_size=0.2,random_state=1000)
from imblearn.over_sampling import SMOTE
ov = SMOTE(random_state=0)
x_tr_ov,y_tr_ov = ov.fit_resample(x_tr_all,y_tr_all)
# 交叉验证
scores = []
c_range = [0.01,0.1,1,10,100]
## 循环测试带入因子
for i in c_range:# start_time = time.time()lg = LogisticRegression(C=i,penalty='l2',solver='lbfgs',max_iter=1000)# 模型迭代8次后的所有模型的recall值score = cross_val_score(lg,x_tr_ov,y_tr_ov,cv=5,scoring='recall')# score的平均值,也就是recall的平均值score_m = sum(score)/len(score)# scores列表添加均值recallscores.append(score_m)
best_c = c_range[np.argmax(scores)]
lg = LogisticRegression(C=best_c,penalty='l2',max_iter=1000)
lg.fit(x_tr_ov,y_tr_ov)
te_pr1 = lg.predict(x_te_all)
print("过采样均衡样本训练")
print(metrics.classification_report(y_te_all,te_pr1))

运行结果:
在这里插入图片描述

http://www.15wanjia.com/news/191056.html

相关文章:

  • 网站开发制作的流程地产行业网站建设图片
  • 企业网站新闻wp怎么做大理州建设局门户网站
  • 怎样做网站反链东城做企业网站多少钱
  • 主流大型网站开发语言调查杭州网页设计公司排名
  • 江西网站建设公司拉新app渠道
  • 西昌市规划建设局网站品牌营销方案
  • 建设云网站wordpress做ftp
  • 响应式商品展示的网站2015做哪个网站能致富
  • 做界面网站用什么语言好网站做备案到哪去
  • 我想建个网站怎么建有域名了怎么建立网站
  • wordpress推广码兰州网站关键词优化
  • 合肥能做网站的公司中山企业网站多少钱
  • 海口企业自助建站系统用dw制作做网站需要钱吗
  • 南京网站建设有限公司WordPress单栏二次元主题
  • 做百度网站还是安居客网站wordpress下一行怎样挨近
  • 自助外贸网站建设网站备案号 怎么写
  • 护肤品网站制作 网新科技考上一级建造师很牛吗
  • 为什么不自己做购物网站广告设计入门到精通
  • 做网站需要什么条件wordpress会员中心vip收费
  • 重庆网站设计哪家好家纺网站设计
  • 怎么做企业网站仿站中国域名网站排名
  • 网站建设app是什么推广策划方案怎么做
  • 顶棒 技术支持 东莞网站建设做h网站怎么才能安全
  • 有个网站专做品牌 而且价格便宜合肥建站公司有哪家招聘的
  • 通州网站网站建设天津企商网站建设公司
  • 手机支付网站开发跨境电商最火的产品
  • 商城网站源码打开百度网页
  • 一站式网站开发服务平台经典手机网站
  • 网站源码怎么做app设计思路怎么写
  • 东莞网站推广排名邢台市住建局