python运用sklearn的代码
时间: 2025-03-16 20:02:28 浏览: 36
### Python 使用 sklearn 的示例代码
以下是几个常见的 `sklearn` 示例代码,涵盖了分类任务、回归任务以及数据预处理等内容。
#### 1. 基于 sklearn 的分类任务及其性能评估
下面是一个简单的逻辑回归模型训练过程,并计算常用的分类指标:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 加载数据集
data = load_iris()
X, y = data.data, data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 实例化并训练模型
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
# 计算评价指标
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='macro')
recall = recall_score(y_test, y_pred, average='macro')
f1 = f1_score(y_test, y_pred, average='macro')
print(f'Accuracy: {accuracy}')
print(f'Precision: {precision}')
print(f'Recall: {recall}')
print(f'F1 Score: {f1}')
```
上述代码展示了如何加载 Iris 数据集,划分训练集与测试集,训练逻辑回归模型,并通过多个分类指标进行评估[^1]。
---
#### 2. 回归任务中的均方误差 (MSE) 和 R² 得分
以下代码演示了如何使用线性回归模型完成回归任务,并计算 MSE 和 R² 得分:
```python
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 创建模拟回归数据
X, y = make_regression(n_samples=100, n_features=1, noise=0.1, random_state=42)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 实例化并训练模型
regressor = LinearRegression()
regressor.fit(X_train, y_train)
# 预测
y_pred = regressor.predict(X_test)
# 计算 MSE 和 R²
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'Mean Squared Error: {mse}')
print(f'R-squared Value: {r2}')
```
此部分代码说明了如何创建虚拟回归数据,拟合线性回归模型,并利用 MSE 和 R² 来衡量模型表现[^2]。
---
#### 3. 数据二值化的应用
如果需要对连续型特征进行二值化操作,则可以使用 `Binarizer` 工具。如下所示:
```python
import numpy as np
from sklearn.preprocessing import Binarizer
# 构造输入数据
x = np.array([[1], [2], [3], [4], [5]])
# 定义阈值为 3 进行二值化
binarizer = Binarizer(threshold=3).fit(x)
# 转换后的结果
binary_x = binarizer.transform(x)
print("Original Data:")
print(x.flatten())
print("\nBinarized Data:")
print(binary_x.flatten())
```
该代码片段实现了将数值大于等于指定阈值的数据转换为 1,其余转为 0 的功能[^3]。
---
#### 4. 多种回归算法的比较
为了展示不同回归方法的效果对比,可尝试多种回归器:
```python
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge, Lasso, ElasticNet
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error
# 加载波士顿房价数据
boston = load_boston()
X, y = boston.data, boston.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
models = {
'Ridge': Ridge(),
'Lasso': Lasso(),
'ElasticNet': ElasticNet(),
'SVR': SVR(kernel='linear')
}
for name, model in models.items():
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f'{name} Mean Squared Error: {mse:.2f}')
```
这段程序分别构建了几类不同的回归模型,并逐一打印其对应的 MSE 结果[^4]。
---
###
阅读全文
相关推荐


















