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²。
- 参数:
- 返回值: 模型的 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): 预测每个类别的概率。
- 参数:
- 返回值: 预测每个类别的概率,形状为
(n_samples, n_classes)。
-
score(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 用于分类任务,返回类别预测和类别概率,同时可以计算准确度和混淆矩阵。