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

蒲城网站建设wzjseo深圳网站设计三把火

蒲城网站建设wzjseo,深圳网站设计三把火,青岛网站设计哪家好,wordpress讨论区基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言#xff0c;不想学Python咯。 答曰#xff1a;可#xff01;用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了#xff0c;就帮各位搬运一下吧。 二、R代码实现SVM分类 #xff08;1不想学Python咯。 答曰可用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了就帮各位搬运一下吧。 二、R代码实现SVM分类 1导入数据 我习惯用RStudio自带的导入功能 2建立SVM模型默认参数 # Load necessary libraries library(caret) library(kernlab) library(pROC) library(ggplot2)# Assume data is your dataframe containing the data # Set seed to ensure reproducibility set.seed(123)# Split data into training and validation sets (80% training, 20% validation) trainIndex - createDataPartition(data$X, p 0.8, list FALSE) trainData - data[trainIndex, ] validData - data[-trainIndex, ]# Train the SVM model svmModel - ksvm(X ~ ., data trainData, type C-svc, kernel rbfdot, prob.model TRUE)# Predict on the training and validation sets trainPredict - predict(svmModel, trainData, type probabilities)[,1] validPredict - predict(svmModel, validData, type probabilities)[,1]# Convert predictions to binary using 0.5 as threshold trainPredictBinary - ifelse(trainPredict 0.5, 1, 0) validPredictBinary - ifelse(validPredict 0.5, 1, 0)# Compute ROC objects trainRoc - roc(response as.numeric(trainData$X) - 1, predictor trainPredict) validRoc - roc(response as.numeric(validData$X) - 1, predictor validPredict)# Plot ROC curves using ggplot2 trainRocPlot - ggplot(data data.frame(fpr 1 - trainRoc$specificities, tpr trainRoc$sensitivities), aes(x fpr, y tpr)) geom_line(color blue) geom_area(aes(ifelse(fpr 1, fpr, NA)), fill blue, alpha 0.2) geom_abline(slope 1, intercept 0, linetype dashed, color black) ggtitle(Training ROC Curve) xlab(False Positive Rate) ylab(True Positive Rate) annotate(text, x 0.5, y 0.1, label paste(Training AUC , round(auc(trainRoc), 2)), hjust 0.5, color blue)validRocPlot - ggplot(data data.frame(fpr 1 - validRoc$specificities, tpr validRoc$sensitivities), aes(x fpr, y tpr)) geom_line(color red) geom_area(aes(ifelse(fpr 1, fpr, NA)), fill red, alpha 0.2) geom_abline(slope 1, intercept 0, linetype dashed, color black) ggtitle(Validation ROC Curve) xlab(False Positive Rate) ylab(True Positive Rate) annotate(text, x 0.5, y 0.2, label paste(Validation AUC , round(auc(validRoc), 2)), hjust 0.5, color red)# Display plots print(trainRocPlot) print(validRocPlot)# Calculate confusion matrices based on 0.5 cutoff for probability confMatTrain - table(trainData$X, trainPredict 0.5) confMatValid - table(validData$X, validPredict 0.5)# Function to plot confusion matrix using ggplot2 plot_confusion_matrix - function(conf_mat, dataset_name) {conf_mat_df - as.data.frame(as.table(conf_mat))colnames(conf_mat_df) - c(Actual, Predicted, Freq)p - ggplot(data conf_mat_df, aes(x Predicted, y Actual, fill Freq)) geom_tile(color white) geom_text(aes(label Freq), vjust 1.5, color black, size 5) scale_fill_gradient(low white, high steelblue) labs(title paste(Confusion Matrix -, dataset_name, Set), x Predicted Class, y Actual Class) theme_minimal() theme(axis.text.x element_text(angle 45, hjust 1), plot.title element_text(hjust 0.5))print(p) }# Now call the function to plot and display the confusion matrices plot_confusion_matrix(confMatTrain, Training) plot_confusion_matrix(confMatValid, Validation)# 提取混淆矩阵的值确保它们的命名与你的混淆矩阵布局一致 fp_train - confMatTrain[1, 1] tn_train - confMatTrain[1, 2] tp_train - confMatTrain[2, 1] fn_train - confMatTrain[2, 2]fp_valid - confMatValid[1, 1] tn_valid - confMatValid[1, 2] tp_valid - confMatValid[2, 1] fn_valid - confMatValid[2, 2]# 训练集指标 acc_train - (tp_train tn_train) / sum(confMatTrain) error_rate_train - 1 - acc_train sen_train - tp_train / (tp_train fn_train) # 灵敏度 sep_train - tn_train / (tn_train fp_train) # 特异度 precision_train - tp_train / (tp_train fp_train) # 精确度 F1_train - 2 * (precision_train * sen_train) / (precision_train sen_train) MCC_train - (tp_train * tn_train - fp_train * fn_train) / sqrt((tp_train fp_train) * (tp_train fn_train) * (tn_train fp_train) * (tn_train fn_train)) auc_train - roc(response trainData$X, predictor trainPredict)$auc# 验证集指标 acc_valid - (tp_valid tn_valid) / sum(confMatValid) error_rate_valid - 1 - acc_valid sen_valid - tp_valid / (tp_valid fn_valid) # 灵敏度 sep_valid - tn_valid / (tn_valid fp_valid) # 特异度 precision_valid - tp_valid / (tp_valid fp_valid) # 精确度 F1_valid - 2 * (precision_valid * sen_valid) / (precision_valid sen_valid) MCC_valid - (tp_valid * tn_valid - fp_valid * fn_valid) / sqrt((tp_valid fp_valid) * (tp_valid fn_valid) * (tn_valid fp_valid) * (tn_valid fn_valid)) auc_valid - roc(response validData$X, predictor validPredict)$auc# Print Metrics cat(Training Metrics\n) cat(Accuracy:, acc_train, \n) cat(Error Rate:, error_rate_train, \n) cat(Sensitivity:, sen_train, \n) cat(Specificity:, sep_train, \n) cat(Precision:, precision_train, \n) cat(F1 Score:, F1_train, \n) cat(MCC:, MCC_train, \n) cat(AUC:, auc_train, \n\n)cat(Validation Metrics\n) cat(Accuracy:, acc_valid, \n) cat(Error Rate:, error_rate_valid, \n) cat(Sensitivity:, sen_valid, \n) cat(Specificity:, sep_valid, \n) cat(Precision:, precision_valid, \n) cat(F1 Score:, F1_valid, \n) cat(MCC:, MCC_valid, \n) cat(AUC:, auc_valid, \n) 结果输出随便挑的 效果一般般。 三、SVM调参 ksvm 函数是 kernlab 包中的一个函数用于在 R 语言中构建和训练支持向量机SVM模型。以下是 ksvm 的一些主要参数和选项这些参数允许你定制和优化SVM的训练过程 formula一种符号描述的模型公式指示如何将变量应用到分析中。 data包含数据的数据框data frame。 type模型类型包括 C-svcC-支持向量分类。 nu-svcNu-支持向量分类。 C-bsvc不平衡分类。 spoc-svc结构化输出和输出校正。 kbb-svc基于核的二进制分类。 C-svrC-支持向量回归。 nu-svrNu-支持向量回归。 eps-svrε-支持向量回归。 C-bsvr不平衡回归。 lp线性规划。 kernel核函数类型包括 rbfdot径向基函数核。 polydot多项式核。 vanilladot线性核。 tanhdot双曲正切核。 laplacedot拉普拉斯核。 besseldot贝塞尔核。 anovadotANOVA核。 splinedot样条核。 C错误的成本用于C-支持向量分类和回归较大的值表示对错误的惩罚增加。一般从 0.1 到 1000具体取值可以通过交叉验证来确定。常用的实验值包括 1, 10, 100 等。 sigma用于 RBF 核高斯核的宽度参数。sigma 的理想取值高度依赖于数据的分布和特征的尺度即特征的范围或方差。因此没有固定的“最佳”取值范围而是需要根据具体情况来确定。常见的做法包括 基于数据的启发式方法一个常见的启发式方法是将 sigma 设置为特征空间中点到点距离的中值或平均值的函数。另一种方法是将 sigma 设置为特征标准差的倒数。 试错法Trial and Error在实际应用中可以通过试验一系列的 sigma 值来观察模型性能的变化。例如可以在对数尺度上均匀尝试如 0.01, 0.1, 1, 10 等。 degree多项式核函数的度数。 scale核函数的缩放参数。 offset核函数的偏移量。 prob.model是否计算概率估计适用于分类任务。 cross进行交叉验证的次数用于模型选择和参数优化。 na.action缺失数据的处理策略。 shrinking是否使用启发式方法来加速计算。 tol收敛容忍度用于优化算法。 epsilon(用于 SVR)ε-支持向量回归中的损失函数边缘宽度。 fitted是否返回拟合值。 scaled是否对数据进行标准化处理。 feature.out是否输出模型中使用的特征。 大家自个调吧我不调了。 五、最后 至于怎么安装自学了哈。 数据嘛 链接https://pan.baidu.com/s/1rEf6JZyzA1ia5exoq5OF7g?pwdx8xm 提取码x8xm
http://www.w-s-a.com/news/908724/

相关文章:

  • 品牌形象网站有哪些珠海市区工商年报在哪个网站做
  • 注册域名不建设网站seo外包服务方案
  • 如何进行外贸网站建设wordpress文章输入密码可见
  • 政务网站建设索引常州做网站信息
  • 南宁做网站找哪家好wordpress 更改首页
  • 一个人在家做网站建设品牌策划流程
  • 小网站广告投放wordpress页面添加js
  • 仿制别人的竞价网站做竞价犯法吗wordpress添加版块
  • wordpress主题 站长互联网站备案表
  • 广州品牌策划公司排行南宁seo网络推广公司
  • 营销型网站图片肯德基网站开发
  • 网站的外链是什么wordpress开启菜单
  • 文字字体是什么网站西安博达网站建设
  • 北京南昌网站建设网站查看空间商
  • 网站建设人员职责分布乐清市网站建设设计
  • 网站建设etw网站建设陕西
  • 网站文章页内链结构不好可以改吗wordpress英文模板下载
  • 北京天通苑 做网站哈尔滨快速网站排名
  • 网站开发负责人是什么职位试剂网站建设
  • 什么是展示型网站wordpress链接视频
  • 佳木斯城乡建设局网站过年做哪个网站能致富
  • 石家庄快速网站搭建设计公司属于什么企业
  • 中小学智慧校园建设平台网站sem竞价推广
  • 想创建一个网站官方网站建设推广
  • 江门网站优化民间it网站建设
  • 科研实验室网站建设wordpress加载模板
  • 用r做简易的网站软件园二期做网站的公司
  • 菏泽网站建设价格长春高档网站建设
  • PHP网站开发与管理设计心得网站流量图怎么做
  • 苏州做网站企业wordpress点击文字弹出层