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
用于分类任务,返回类别预测和类别概率,同时可以计算准确度和混淆矩阵。