ML之分类预测之ElasticNet:利用ElasticNet回归对二分类数据集构建二分类器(DIY交叉验证+分类的两种度量PK)

简介: ML之分类预测之ElasticNet:利用ElasticNet回归对二分类数据集构建二分类器(DIY交叉验证+分类的两种度量PK)

输出结果


image.pngimage.png

image.png


设计思路

image.png

image.png


核心代码

#(4)交叉验证

for ixval in range(nxval):

   idxTest = [a for a in range(nrow) if a%nxval == ixval%nxval]

   idxTrain = [a for a in range(nrow) if a%nxval != ixval%nxval]

   xTrain = numpy.array([xNormalized[r] for r in idxTrain])

   xTest = numpy.array([xNormalized[r] for r in idxTest])

   labelTrain = numpy.array([labelNormalized[r] for r in idxTrain])

   labelTest = numpy.array([labelNormalized[r] for r in idxTest])

   alphas, coefs, _ = enet_path(xTrain, labelTrain,l1_ratio=0.8, fit_intercept=False, return_models=False)

   if ixval == 0:

       pred = numpy.dot(xTest, coefs)

       yOut = labelTest

   else:

       #accumulate predictions累积预测

       yTemp = numpy.array(yOut)

       yOut = numpy.concatenate((yTemp, labelTest), axis=0)

       #accumulate predictions

       predTemp = numpy.array(pred)

       pred = numpy.concatenate((predTemp, numpy.dot(xTest, coefs)), axis = 0)

#三处采样

P = len(idxPos)    #P = Positive cases

N = nrow - P       #N = Negative cases

#第52处采样

TP = tpr[52] * P   #TP = True positives = tpr * P

FN = P - TP        #FN = False negatives = P - TP

FP = fpr[52] * N   #FP = False positives = fpr * N

TN = N - FP        #TN = True negatives = N - FP

print('52:Threshold Value =   ', thresh[52])

print('TP = ', TP, 'FP = ', FP)

print('FN = ', FN, 'TN = ', TN)

#第104处采样

TP = tpr[104] * P

FN = P - TP

FP = fpr[104] * N

TN = N - FP

print('104:Threshold Value =   ', thresh[104])

print('TP = ', TP, 'FP = ', FP)

print('FN = ', FN, 'TN = ', TN)

#第156处采样

TP = tpr[156] * P

FN = P - TP

FP = fpr[156] * N

TN = N - FP

print('156:Threshold Value =   ', thresh[156])

print('TP = ', TP, 'FP = ', FP)

print('FN = ', FN, 'TN = ', TN)


相关文章
|
机器学习/深度学习 传感器 算法
分类预测 | MATLAB实现基于PSO-NN、SVM、KNN、DT的多特征数据分类预测,二分类及多分类
分类预测 | MATLAB实现基于PSO-NN、SVM、KNN、DT的多特征数据分类预测,二分类及多分类
ML之LassoR&RidgeR:基于datasets糖尿病数据集利用LassoR和RidgeR算法(alpha调参)进行(9→1)回归预测
ML之LassoR&RidgeR:基于datasets糖尿病数据集利用LassoR和RidgeR算法(alpha调参)进行(9→1)回归预测
ML之LassoR&RidgeR:基于datasets糖尿病数据集利用LassoR和RidgeR算法(alpha调参)进行(9→1)回归预测
|
机器学习/深度学习 算法 数据可视化
ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)
ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)
ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)
|
机器学习/深度学习 算法
ML之回归预测:利用十类机器学习算法(线性回归、kNN、SVM、决策树、随机森林、极端随机树、SGD、提升树、LightGBM、XGBoost)对波士顿数据集回归预测(模型评估、推理并导到csv)
ML之回归预测:利用十类机器学习算法(线性回归、kNN、SVM、决策树、随机森林、极端随机树、SGD、提升树、LightGBM、XGBoost)对波士顿数据集回归预测(模型评估、推理并导到csv)
ML之回归预测:利用十类机器学习算法(线性回归、kNN、SVM、决策树、随机森林、极端随机树、SGD、提升树、LightGBM、XGBoost)对波士顿数据集回归预测(模型评估、推理并导到csv)
|
机器学习/深度学习 算法
ML之分类预测:以六类机器学习算法(kNN、逻辑回归、SVM、决策树、随机森林、提升树、神经网络)对糖尿病数据集(8→1)实现二分类模型评估案例来理解和认知机器学习分类预测的模板流程
ML之分类预测:以六类机器学习算法(kNN、逻辑回归、SVM、决策树、随机森林、提升树、神经网络)对糖尿病数据集(8→1)实现二分类模型评估案例来理解和认知机器学习分类预测的模板流程
ML之分类预测:以六类机器学习算法(kNN、逻辑回归、SVM、决策树、随机森林、提升树、神经网络)对糖尿病数据集(8→1)实现二分类模型评估案例来理解和认知机器学习分类预测的模板流程
ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)
ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)
ML之分类预测之ElasticNet之OPLiR:在二分类数据集上训练OPLiR模型(T1)
ML之分类预测之ElasticNet之OPLiR:在二分类数据集上训练OPLiR模型(T1)
ML之分类预测之ElasticNet之OPLiR:在二分类数据集上训练OPLiR模型(T1)
ML之分类预测之LARS:利用回归工具将二分类转为回归问题并采用LARS算法构建分类器
ML之分类预测之LARS:利用回归工具将二分类转为回归问题并采用LARS算法构建分类器
ML之分类预测之LARS:利用回归工具将二分类转为回归问题并采用LARS算法构建分类器
|
机器学习/深度学习 计算机视觉 Python
ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测
ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测
ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测
ML之分类预测之ElasticNet之PLoR:在二分类数据集上调用Glmnet库训练PLoR模型(T2)
ML之分类预测之ElasticNet之PLoR:在二分类数据集上调用Glmnet库训练PLoR模型(T2)
ML之分类预测之ElasticNet之PLoR:在二分类数据集上调用Glmnet库训练PLoR模型(T2)