一文了解python机器学习Sklearn

1.3 安装和配置Sklearn

要使用Sklearn库,首先需要安装Python和相应的库。在本教程中,我们将使用Python 3.x版本。可以使用以下命令安装Sklearn库:

bash 复制代码
pip install scikit-learn

安装完成后,可以在Python代码中导入Sklearn库:

python 复制代码
import sklearn

2. 数据预处理

2.1 数据加载与查看

在进行机器学习任务之前,通常需要对数据进行预处理。首先,我们需要加载数据。以下是使用pandas库加载CSV和Excel格式数据的示例:

python 复制代码
import pandas as pd

# 加载CSV数据
csv_data = pd.read_csv("data.csv")

# 加载Excel数据
excel_data = pd.read_excel("data.xlsx")

加载数据后,我们可以查看数据的基本信息,如形状、数据类型等。以下是使用pandas库查看数据信息的示例:

python 复制代码
# 查看数据形状
print("数据形状:", csv_data.shape)

# 查看数据类型
print("数据类型:", csv_data.dtypes)

# 查看数据前5行
print("数据前5行:", csv_data.head())

2.2 数据清洗

在实际应用中,数据通常包含缺失值、重复值等异常情况。我们需要对数据进行清洗,以提高模型的准确性和泛化能力。以下是使用pandas库处理缺失值和重复值的示例:

python 复制代码
# 处理缺失值
csv_data.fillna(csv_data.mean(), inplace=True)  # 使用平均值填充缺失值

# 处理重复值
csv_data.drop_duplicates(inplace=True)  # 删除重复行

2.3 特征工程

特征工程是机器学习中的关键步骤,可以提高模型的性能。以下是使用pandas库进行特征选择、特征提取和特征缩放的示例:

python 复制代码
# 特征选择
selected_features = csv_data[["feature1", "feature2", "feature3"]]

# 特征提取
from sklearn.feature_extraction import DictVectorizer

data_dict = [{"feature1": 1, "feature2": 2}, {"feature1": 3, "feature2": 4}]
vectorizer = DictVectorizer()
extracted_features = vectorizer.fit_transform(data_dict)

# 特征缩放
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
scaled_features = scaler.fit_transform(selected_features)

3. 监督学习

3.1 分类问题

分类问题是机器学习中最常见的任务之一。以下是使用Sklearn库进行分类的示例:

python 复制代码
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建K近邻分类器
knn = KNeighborsClassifier(n_neighbors=3)

# 训练模型
knn.fit(X_train, y_train)

# 预测
y_pred = knn.predict(X_test)

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)

3.2 回归问题

回归问题是机器学习中另一种常见的任务。以下是使用Sklearn库进行回归的示例:

python 复制代码
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 加载数据集
boston = load_boston()
X = boston.data
y = boston.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建线性回归模型
lr = LinearRegression()

# 训练模型
lr.fit(X_train, y_train)

# 预测
y_pred = lr.predict(X_test)

# 评估模型
mse = mean_squared_error(y_test, y_pred)
print("均方误差:", mse)

3.3 模型训练与调优

在实际应用中,我们需要对模型进行训练和调优,以提高模型的性能。以下是使用Sklearn库进行模型训练和调优的示例:

python 复制代码
from sklearn.model_selection import GridSearchCV

# 创建K近邻分类器
knn = KNeighborsClassifier()

# 设置参数网格
param_grid = {"n_neighbors": [1, 3, 5, 7, 9]}

# 创建网格搜索对象
grid_search = GridSearchCV(knn, param_grid, cv=5, scoring="accuracy")

# 拟合数据
grid_search.fit(X_train, y_train)

# 获取最佳参数
best_params = grid_search.best_params_
print("最佳参数:", best_params)

# 使用最佳参数训练模型
best_knn = KNeighborsClassifier(**best_params)
best_knn.fit(X_train, y_train)

# 预测
y_pred = best_knn.predict(X_test)

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)

4. 无监督学习

4.1 聚类问题

聚类问题是无监督学习中的常见任务。以下是使用Sklearn库进行聚类的示例:

python 复制代码
from sklearn.cluster import KMeans

# 创建K-means聚类模型
kmeans = KMeans(n_clusters=3, random_state=42)

# 训练模型
kmeans.fit(X)

# 预测聚类结果
y_pred = kmeans.predict(X)

# 评估聚类结果
from sklearn.metrics import silhouette_score

silhouette = silhouette_score(X, y_pred)
print("轮廓系数:", silhouette)

4.2 降维问题

降维问题是无监督学习中另一种常见的任务。以下是使用Sklearn库进行降维的示例:

python 复制代码
from sklearn.decomposition import PCA

# 创建PCA模型
pca = PCA(n_components=2)

# 训练模型
pca.fit(X)

# 降维
X_reduced = pca.transform(X)

# 可视化降维结果
import matplotlib.pyplot as plt

plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y)
plt.show()

5. 模型评估与选择

5.1 模型评估

模型评估是衡量模型性能的重要环节。以下是常见的分类和回归评估指标:

  • 分类问题评估指标:准确率、召回率、F1分数等
  • 回归问题评估指标:均方误差、R²分数等

5.2 模型选择

模型选择是选择最优模型的过程。以下是常见的模型选择方法:

  • 交叉验证:将数据集划分为k个子集,每次取k-1个子集作为训练集,剩下的一个子集作为测试集,重复k次,计算k次模型性能的平均值
  • 网格搜索:遍历参数组合,找到最优参数组合
  • 随机搜索:随机采样参数组合,找到最优参数组合

6. 集成学习

集成学习是将多个模型结合起来,以提高整体性能的方法。以下是常见的集成学习方法:

  • Bagging:并行训练多个模型,每个模型使用不同的训练数据子集
  • Boosting:串行训练多个模型,每个模型使用前一个模型的残差作为训练数据
  • Stacking:训练多个模型,将每个模型的预测结果作为新模型的输入特征
相关推荐
SiYuanFeng7 小时前
Colab复现 NanoChat:从 Tokenizer(CPU)、Base Train(CPU) 到 SFT(GPU) 的完整踩坑实录
python·colab
炸炸鱼.8 小时前
Python 操作 MySQL 数据库
android·数据库·python·adb
_深海凉_9 小时前
LeetCode热题100-颜色分类
python·算法·leetcode
AC赳赳老秦9 小时前
OpenClaw email技能:批量发送邮件、自动回复,高效处理工作邮件
运维·人工智能·python·django·自动化·deepseek·openclaw
zhaoshuzhaoshu9 小时前
Python 语法之数据结构详细解析
python
AI问答工程师10 小时前
Meta Muse Spark 的"思维压缩"到底是什么?我用 Python 复现了核心思路(附代码)
人工智能·python
zfan52011 小时前
python对Excel数据处理(1)
python·excel·pandas
小饕11 小时前
我从零搭建 RAG 学到的 10 件事
python
春末的南方城市11 小时前
比肩顶尖闭源模型!京东开源240亿参数多模态模型JoyAI-Image:统一理解/生成/编辑,重塑AI图像编辑。
人工智能·深度学习·机器学习·计算机视觉·aigc
老歌老听老掉牙11 小时前
PyQt5+Qt Designer实战:可视化设计智能参数配置界面,告别手动布局时代!
python·qt