Python打卡训练营day10

机器学习建模与评估

知识点:

        数据集的划分

        机器学习模型建模的三行代码

        机器学习模型分类问题的评估

尝试对心脏病数据集采用机器学习模型建模和评估

导入相关库,导入数据,划分数据集

from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
import pandas as pd

df = pd.read_csv('heart.csv')
X = df.drop('target',axis=1)
y = df['target']

X_train, X_test, y_train, y_test = train_test_split(
    X, 
    y, 
    test_size=0.3,   # 测试集比例
    random_state=42  # 随机种子(确保每次划分一致)
)

print("训练集样本数:", len(X_train))
print("测试集样本数:", len(X_test))

数据预处理(根据选用的模型判断如何处理数据)

        将非数值型转换为数值型,该数据集已经全部为数值型

训练模型

选用随机森林和逻辑回归

from sklearn.ensemble import RandomForestClassifier

Ran_model = RandomForestClassifier(
    n_estimators=100,            #决策树数量
    max_depth=5,                 #最大深度
    min_samples_split=2,         #分裂最小样本数
    random_state=42
)
from sklearn.linear_model import LogisticRegression

LR_model = LogisticRegression(
    penalty='l2',          #正则化类型
    C=1.0,                 #正则化强度(越小正则化越强)
    max_iter=1000,         #最大迭代次数(数据量大时需增加)
    random_state=42
)

训练与预测

Ran_model.fit(X_train,y_train)
y_pred = Ran_model.predict(X_test)

LR_model.fit(X_train,y_train)
y_pred2 = LR_model.predict(X_test)

评估

print(classification_report(y_test, y_pred))


print(classification_report(y_test, y_pred2))

你可能感兴趣的:(python打卡训练营,python,机器学习,模型训练)