线性回归和逻辑回归API

1. 线性回归(Linear Regression)

主要类
  • LinearRegression: 这是scikit-learn中用于实现线性回归的类。
用法
from sklearn.linear_model import LinearRegression

# 创建模型实例
model = LinearRegression()

主要参数
  • fit_intercept: 默认为True。是否计算截距(b)。如果为False,模型将不包括截距。
  • normalize: 默认为False。是否在回归之前对输入特征进行标准化。注意:在scikit-learn的最新版本中,normalize参数已被弃用,建议使用StandardScaler进行预处理。
  • copy_X: 默认为True。是否在训练前复制X数据。
主要方法
  • fit(X, y): 训练模型。

    • 参数:
      • X: 特征数据,形状为 (n_samples, n_features)
      • y: 目标变量,形状为 (n_samples,)
    • 返回值self,即当前模型对象。
  • predict(X): 预测新数据的目标值。

    • 参数:
      • X: 新的特征数据,形状为 (n_samples, n_features)
    • 返回值: 预测值,形状为 (n_samples,)
  • score(X, y): 计算模型的决定系数 R²。

    • 参数:
      • X: 特征数据。
      • y: 真实目标值。
    • 返回值: 模型的 R² 分数(0到1之间),越接近1表示模型越好。
  • coef_: 训练后得到的回归系数,形状为 (n_features,)

  • intercept_: 训练后的截距(bias),标量值。

示例
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 假设有数据 X 和 y
X, y = ...  # 数据加载和预处理

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建并训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 评估
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse:.4f}')
print(f'Coefficients: {model.coef_}')
print(f'Intercept: {model.intercept_}')

2. 逻辑回归(Logistic Regression)

主要类
  • LogisticRegression: 这是scikit-learn中用于实现逻辑回归的类。
用法
from sklearn.linear_model import LogisticRegression

# 创建模型实例
model = LogisticRegression()

主要参数
  • penalty: 默认为'l2'。正则化方式,支持 'l1''l2''elasticnet' 和 'none'
  • C: 默认为1.0。正则化强度的倒数,值越小正则化强度越大。
  • solver: 默认为 'lbfgs'。优化算法,支持 'newton-cg''lbfgs''liblinear''saga' 和 'auto'
  • max_iter: 默认为100。迭代次数的最大值,用于优化算法。
  • multi_class: 默认为 'auto'。多分类策略,支持 'ovr'(一对多)和 'multinomial'(多项式)。
主要方法
  • fit(X, y): 训练模型。

    • 参数:
      • X: 特征数据,形状为 (n_samples, n_features)
      • y: 目标变量,形状为 (n_samples,),应为类别标签。
    • 返回值self,即当前模型对象。
  • predict(X): 预测新数据的类别。

    • 参数:
      • X: 新的特征数据,形状为 (n_samples, n_features)
    • 返回值: 预测类别标签,形状为 (n_samples,)
  • predict_proba(X): 预测每个类别的概率。

    • 参数:
      • X: 新的特征数据。
    • 返回值: 预测每个类别的概率,形状为 (n_samples, n_classes)
  • score(X, y): 计算模型的准确度。

    • 参数:
      • X: 特征数据。
      • y: 真实类别标签。
    • 返回值: 模型的准确度(0到1之间),表示分类正确的比例。
  • coef_: 训练后得到的回归系数,形状为 (n_classes, n_features)

  • intercept_: 训练后的截距(bias),形状为 (n_classes,)

示例
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix

# 假设有数据 X 和 y
X, y = ...  # 数据加载和预处理

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建并训练模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 评估
accuracy = accuracy_score(y_test, y_pred)
conf_matrix = confusion_matrix(y_test, y_pred)

print(f'Accuracy: {accuracy:.4f}')
print('Confusion Matrix:')
print(conf_matrix)
print(f'Coefficients: {model.coef_}')
print(f'Intercept: {model.intercept_}')

总结

  • LinearRegression 用于回归任务,返回预测值和回归系数。
  • LogisticRegression 用于分类任务,返回类别预测和类别概率,同时可以计算准确度和混淆矩阵。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

背水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值