一文了解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:训练多个模型,将每个模型的预测结果作为新模型的输入特征
相关推荐
用户27784491049935 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
JavaEdge在掘金7 小时前
ssl.SSLCertVerificationError报错解决方案
python
我不会编程5558 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
老歌老听老掉牙8 小时前
平面旋转与交线投影夹角计算
python·线性代数·平面·sympy
满怀10158 小时前
Python入门(7):模块
python
无名之逆8 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
你觉得2058 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
啊喜拔牙8 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
__lost10 小时前
Pysides6 Python3.10 Qt 画一个时钟
python·qt