织梦可以做淘宝客网站吗,网站建设方案书一定要交,网站建设设计设计,北京市门户网站逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告 目录 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告1 逻辑回归算法1.1 概念理解1.2 算法导入1.3 算法优缺点 2 LogisticRegression理解2.1查看参数定义2.2 参数理解2.3 方法2.4基本格式 3 数据标准…逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告 目录 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告1 逻辑回归算法1.1 概念理解1.2 算法导入1.3 算法优缺点 2 LogisticRegression理解2.1查看参数定义2.2 参数理解2.3 方法2.4基本格式 3 数据标准化处理3.1 0~1标准化3.1.1概念3.1.2公式 3.2 z标准化3.2.1概念3.2.2公式3.2.3算法导入和实现 4 预测逻辑回归数据4.1问题及理解4.2 数据预处理数据标准化统一数据测试数据和训练数据划分 4.3 预测数据和分类结果4.3.1分类结果报告 1 逻辑回归算法 1.1 概念理解
是用于处理因变量为分类变量的回归问题常见的是二分类问题可以处理预测的值是为分类变量的问题它实际上是一种分类方法。
1.2 算法导入
from sklearn.linear_model import LogisticRegression1.3 算法优缺点
优点 实现简单易于理解和实现计算代价不高速度很快存储资源低。 缺点 容易欠拟合分类精度可能不高。
2 LogisticRegression理解 2.1查看参数定义
def __init__(self,penaltyl2,*,dualFalse,tol1e-4,C1.0,fit_interceptTrue,intercept_scaling1,class_weightNone,random_stateNone,solverlbfgs,max_iter100,multi_classauto,verbose0,warm_startFalse,n_jobsNone,l1_ratioNone,)2.2 参数理解
Penalty正则化方式有l1和l2两种。用于指定惩罚项中使用的规范。 newton-cg、sag和lbfgs求解算法只支持L2规范。L1G规范假设的是模型的参数满足拉普拉斯分布L2假设的模型参数满足高斯分布。 Dual按默认即可。对偶方法只用在求解线性多核(liblinear)的L2惩罚项上。当样本数量样本特征的时候dual通常设置为False。Tolfloat默认值1e-4容许停止标准即我们说的要迭代停止所需达到的精度要求。C正则化强度为浮点型数据。正则化系数λ的倒数float类型默认为1.0必须是正浮点型数。像SVM一样越小的数值表示越强的正则化。fit_intercept指定是否应该将常量(即偏差或截距)添加到决策函数中相当于是否加入截距项b默认加入。intercept_scaling仅在正则化项为”liblinear”且fit_intercept设置为True时有用。float类型默认为1。class_weight用于标示分类模型中各种类型的权重可以是一个字典或者’balanced’字符串默认为Nonerandom_state随机数产生器在对数据进行洗牌时使用的种子仅在正则化优化算法为sag,liblinear时有用。Solver{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}优化拟合参数算法选择默认为liblinear。solver参数决定了我们对逻辑回归损失函数的优化方法有四种算法可以选择分别是 liblinear使用坐标轴下降法来迭代优化损失函数。使用了开源的liblinear库实现内部使用了坐标轴下降法来迭代优化损失函数。newton-cg牛顿法sag方法使用一阶导数而牛顿法采用了二阶泰勒展开这样缩减了迭代轮数但是需要计算Hsssian矩阵的逆所以计算复杂度较高。【也是牛顿法家族的一种利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。】Lbfgs拟牛顿法用较低的代价寻找Hessian矩阵的近似逆矩阵便有了拟牛顿法。【拟牛顿法的一种利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。】Sag即随机平均梯度下降是求解无约束优化问题最经典最简单的方法之一。【即随机平均梯度下降是梯度下降法的变种和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度适合于样本数据多的时候。】Saga线性收敛的随机优化算法。【线性收敛的随机优化算法的的变种。】
liblinear适用于小数据集而sag和saga适用于大数据集因为速度更快。
max_iter算法收敛最大迭代次数int类型默认为100。仅在正则化优化算法为newton-cg, sag和lbfgs才有用算法收敛的最大迭代次数。multi_class分类方式选择参数str类型可选参数为ovr和multinomial默认为ovr。verbose日志冗长度int类型默认为0。就是不输出训练过程1的时候偶尔输出结果大于1对于每个子模型都输出。warm_start热启动参数bool类型默认为False。如果为True则下一次训练是以追加树的形式进行重新使用上一次的调用作为初始化。n_jobs并行数。int类型默认为1。1的时候用CPU的一个内核运行程序2的时候用CPU的2个内核运行程序。为-1的时候用所有CPU的内核运行程序。
2.3 方法
fit(x,y)训练模型x为特征数据y为结果 score(x,y)拟合度x,y为已知的数据及结果计算fit()模型与数据的拟合度在[0,1]间趋于1优趋于0劣predict([[]数据])预测数据结果括号内为二维数组
2.4基本格式
lg LogisticRegression() x特征数据 y数据结果 lg.fit(x,y) result lg.predict(x1) 先引用LogisticRegression()函数根据历史特征数据和数据结果训练fit()模型然后预测x1的回归结果result
3 数据标准化处理
3.1 0~1标准化
3.1.1概念
对原始数据的线性变换结果映射在0,1区间。
3.1.2公式 3.2 z标准化
3.2.1概念
基于原始数据的均值(mean )和标准差(stand ard deviation)进行数据的标准化。
3.2.2公式 3.2.3算法导入和实现
z标准化Amount列数据
from sklearn.preprocessing import StandardScaler
data[Amount] scaler.fit_transform(data[[Amount]])4 预测逻辑回归数据 4.1问题及理解
问题给定数据预测分类
特征数据除类别列外其他有关列 类别标签类别列 第一列为时间无关最后一列为类别给定的数据
4.2 数据预处理
数据标准化统一
Amount列不是z标准化处理的结果需要进行z标准化处理
data[Amount] scaler.fit_transform(data[[Amount]])数据测试数据和训练数据划分
from sklearn.model_selection import train_test_split
# 训练集特征测试集特征,训练集结果测试集结果,test_size抽取的测试集百分比train_size 抽取的训练集百分比
x_tr,x_te,y_tr,y_te \train_test_split(x_all, y_all, train_size0.3,random_state0)4.3 预测数据和分类结果
代码展示
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.model_selection import cross_val_score
from sklearn.metrics import confusion_matrix
# 标准化处理
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],axis1)
# 特征数据x,删除class列
x_all data.drop([Class],axis1)
# class为标签结果列
y_all data.Class
# 训练集特征测试集特征,训练集结果测试集结果,test_size抽取的测试集百分比train_size 抽取的训练集百分比
x_tr,x_te,y_tr,y_te \train_test_split(x_all, y_all, test_size0.3,random_state1000)
# 逻辑回归方法引用
lg LogisticRegression(C1)
# 训练集训练模型
lg.fit(x_tr,y_tr)
# 预测测试集结果
re_pr lg.predict(x_te)
# 拟合度评分
score lg.score(x_te,y_te)
# 分类结果报告
print(metrics.classification_report(y_te, re_pr))运行结果 4.3.1分类结果报告
precision 精确率从预测值出发 PrecisionTP/TP FPrecall 召回率从真实值出发 Recall TP/TP FN 其中 TP (True Positive)正确预测的正样本数量。 TN (True Negative)正确预测的负样本数量。 FP (False Positive):错误预测的正样本数量实际上是负样本。 FN (False Negative)错误预测的负样本数量实际上是正样本。 上图01为类别。