接昨日Day16日志内容(讲义Day10精进)
知识点:
数据集的划分
机器学习模型建模的三行代码
机器学习模型分类问题的评估
练习:尝试对心脏病数据集采用机器学习模型建模和评估
机器学习的概念
人可以通过对已有知识的不断学习来解决新的问题,那么机器也可以做到。机器学习指的就是机器从过往数据中学习,然后能够对新的数据进行正确分析的过程。
机器学习最常见的任务就是预测。根据历史数据进行预测,同一时刻的也可以预测。
这里要明确一下,预测任务包含两类:分类和回归。两者的标签不一样,分类主要针对的是离散标签,而回归主要针对连续的标签。(“标签”与“特征”为专有名词,标签指的就是要预测的东西,是“答案”;而特征是“问题”。“问题”与“答案”凑成一对,机器才可以学习一次)
(7)划分数据值
(目前先学习不涉及到调参的情况)
划分数据值的目的在于评估数据模型的性能并防止过拟合

对于简单建模来说,训练集和测试集的划分比例一般为8:2或7:3
代码书写:
# 划分训练集和测试机
from sklearn.model_selection import train_test_split
X = data.drop(['Credit Default'], axis=1) # 特征,axis=1表示按列删除
y = data['Credit Default'] # 标签
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 划分数据集,20%作为测试集,随机种子为42
# 训练集和测试集的形状
print(f"训练集形状: {X_train.shape}, 测试集形状: {X_test.shape}") # 打印训练集和测试集的形状
Q. 什么是“随机种子”?为什么要设置随机种子?

(8)特征工程
Q. 什么是“特征工程”?“特征工程”的作用是什么?



自理解
好比老师要帮助学生掌握一个知识,那么他就须选择适合的并且最重要的资料来让学生学习。通过加工和整理的学习资料可以帮助学生更高效的完成学习。
(9)模型训练
(10)模型评估
三行经典代码:
【1】模型实例化
【2】模型训练(代入训练集)
【3】模型预测(代入测试集)
<导入必要的库>
from sklearn.svm import SVC #支持向量机分类器
from sklearn.neighbors import KNeighborsClassifier #K近邻分类器
from sklearn.linear_model import LogisticRegression #逻辑回归分类器
import xgboost as xgb #XGBoost分类器
import lightgbm as lgb #LightGBM分类器
from sklearn.ensemble import RandomForestClassifier #随机森林分类器
from catboost import CatBoostClassifier #CatBoost分类器
from sklearn.tree import DecisionTreeClassifier #决策树分类器
from sklearn.naive_bayes import GaussianNB #高斯朴素贝叶斯分类器
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score # 用于评估分类器性能的指标
from sklearn.metrics import classification_report, confusion_matrix #用于生成分类报告和混淆矩阵
import warnings #用于忽略警告信息
warnings.filterwarnings("ignore") # 忽略所有警告信息
<几种算法学习>
svm
Q1. 概念

Q2.代码书写
# SVM
svm_model = SVC(random_state=42)
svm_model.fit(X_train, y_train)
svm_pred = svm_model.predict(X_test)
print("\nSVM 分类报告:")
print(classification_report(y_test, svm_pred)) # 打印分类报告
print("SVM 混淆矩阵:")
print(confusion_matrix(y_test, svm_pred)) # 打印混淆矩阵
# 计算 SVM 评估指标,这些指标默认计算正类的性能
svm_accuracy = accuracy_score(y_test, svm_pred)
svm_precision = precision_score(y_test, svm_pred)
svm_recall = recall_score(y_test, svm_pred)
svm_f1 = f1_score(y_test, svm_pred)
print("SVM 模型评估指标:")
print(f"准确率: {svm_accuracy:.4f}")
print(f"精确率: {svm_precision:.4f}")
print(f"召回率: {svm_recall:.4f}")
print(f"F1 值: {svm_f1:.4f}")
通过AI进行逐行学习

注:“模型实例化”指的是基于一个“类”(class)创建一个具体对象(instance)的过程。实例化后,模型对象会拥有类中定义的属性和方法,可以用来执行特定的操作或存储数据。

Q. 什么是“正类”?


Q. 什么是“混淆矩阵”?
混淆矩阵(Confusion Matrix)是用于评估分类模型性能的工具,它以矩阵形式展示了模型的预测结果与真实值之间的对比情况。混淆矩阵特别适用于二分类或多分类问题。


今日学习到这里,这一部分内容较多,慢慢来学。明日接着剩余几种算法的理解与学习。继续加油!!!@浙大疏锦行

197

被折叠的 条评论
为什么被折叠?



