建设网站的机构,wordpress 浮动 插件,three.js 做的网站,郑州做网站擎天初见scikit-learn之基础教程 scikit-learn 基础教程 1. scikit-learn 简介1.1 什么是 scikit-learn#xff1f;1.2 scikit-learn 的主要功能 2. 安装 scikit-learn2.1 安装方法2.2 验证安装 3. scikit-learn 基本使用3.1 数据加载与预处理3.1.1 加载数据集3.1.2 数据拆分3.1.3… 初见scikit-learn之基础教程 scikit-learn 基础教程 1. scikit-learn 简介1.1 什么是 scikit-learn1.2 scikit-learn 的主要功能 2. 安装 scikit-learn2.1 安装方法2.2 验证安装 3. scikit-learn 基本使用3.1 数据加载与预处理3.1.1 加载数据集3.1.2 数据拆分3.1.3 数据标准化 3.2 分类模型3.2.1 逻辑回归3.2.2 决策树 3.3 回归模型3.3.1 线性回归 3.4 聚类模型3.4.1 K-Means 聚类 3.5 降维3.5.1 主成分分析PCA 3.6 模型选择与评估3.6.1 交叉验证3.6.2 网格搜索 4. 实战案例4.1 房价预测4.1.1 数据准备4.1.2 数据预处理4.1.3 模型训练与评估 4.2 客户细分4.2.1 数据准备4.2.2 K-Means 聚类4.2.3 可视化 5. 总结 scikit-learn 基础教程
scikit-learn 是一个广泛使用的 Python 机器学习库提供了简单而高效的工具来进行数据挖掘和数据分析。它涵盖了数据预处理、特征选择、模型训练和评估等多个方面。本文将详细介绍 scikit-learn 的基础知识包括基本概念、常用模块和功能、以及实际应用示例。 1. scikit-learn 简介
1.1 什么是 scikit-learn
scikit-learn 是一个开源的 Python 库用于机器学习和数据挖掘。它提供了一系列简单而高效的工具来处理数据预处理、特征选择、模型训练和评估等任务。scikit-learn 构建于 NumPy、SciPy 和 matplotlib 之上并且符合 SciPy 生态系统的设计原则。
1.2 scikit-learn 的主要功能
分类用于将数据分为不同的类别例如垃圾邮件分类。回归预测连续的数值例如房价预测。聚类将数据分组为不同的簇例如客户细分。降维减少数据的维度例如PCA。模型选择选择和评估模型例如交叉验证。数据预处理数据清理和特征工程例如标准化、归一化。 2. 安装 scikit-learn
2.1 安装方法
可以使用 pip 来安装 scikit-learn
pip install scikit-learn或者使用 conda 安装
conda install scikit-learn2.2 验证安装
安装完成后可以通过以下代码验证 scikit-learn 是否安装成功
import sklearn
print(sklearn.__version__)3. scikit-learn 基本使用
3.1 数据加载与预处理
3.1.1 加载数据集
scikit-learn 提供了一些内置的数据集例如鸢尾花数据集Iris Dataset
from sklearn.datasets import load_iris# 加载鸢尾花数据集
data load_iris()
X data.data
y data.target3.1.2 数据拆分
将数据集拆分为训练集和测试集
from sklearn.model_selection import train_test_split# 拆分数据集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42)3.1.3 数据标准化
标准化数据使其均值为 0方差为 1
from sklearn.preprocessing import StandardScalerscaler StandardScaler()
X_train_scaled scaler.fit_transform(X_train)
X_test_scaled scaler.transform(X_test)3.2 分类模型
3.2.1 逻辑回归
逻辑回归是一种线性分类算法
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score# 创建逻辑回归模型
model LogisticRegression()
model.fit(X_train_scaled, y_train)# 预测
y_pred model.predict(X_test_scaled)# 评估模型
accuracy accuracy_score(y_test, y_pred)
print(fAccuracy: {accuracy:.2f})3.2.2 决策树
决策树是一种基于树结构的分类方法
from sklearn.tree import DecisionTreeClassifier# 创建决策树模型
model DecisionTreeClassifier()
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估模型
accuracy accuracy_score(y_test, y_pred)
print(fAccuracy: {accuracy:.2f})3.3 回归模型
3.3.1 线性回归
线性回归用于预测连续变量
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 创建线性回归模型
model LinearRegression()
model.fit(X_train, y_train)# 预测
y_pred model.predict(X_test)# 评估模型
mse mean_squared_error(y_test, y_pred)
print(fMean Squared Error: {mse:.2f})3.4 聚类模型
3.4.1 K-Means 聚类
K-Means 是一种常用的聚类算法
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 创建 K-Means 模型
model KMeans(n_clusters3, random_state42)
model.fit(X)# 获取聚类结果
labels model.predict(X)# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], clabels, cmapviridis)
plt.xlabel(Feature 1)
plt.ylabel(Feature 2)
plt.title(K-Means Clustering)
plt.show()3.5 降维
3.5.1 主成分分析PCA
PCA 用于减少数据维度
from sklearn.decomposition import PCA# 创建 PCA 模型
pca PCA(n_components2)
X_pca pca.fit_transform(X)# 可视化降维后的数据
plt.scatter(X_pca[:, 0], X_pca[:, 1], cy, cmapviridis)
plt.xlabel(Principal Component 1)
plt.ylabel(Principal Component 2)
plt.title(PCA of Iris Dataset)
plt.show()3.6 模型选择与评估
3.6.1 交叉验证
交叉验证用于评估模型的性能
from sklearn.model_selection import cross_val_score# 创建模型
model LogisticRegression()# 进行交叉验证
scores cross_val_score(model, X, y, cv5)print(fCross-Validation Scores: {scores})
print(fMean Score: {scores.mean():.2f})3.6.2 网格搜索
网格搜索用于调整模型的超参数
from sklearn.model_selection import GridSearchCV# 创建模型
model LogisticRegression()# 定义参数范围
param_grid {C: [0.1, 1, 10],penalty: [l1, l2]
}# 创建网格搜索
grid_search GridSearchCV(model, param_grid, cv5)# 训练网格搜索
grid_search.fit(X_train_scaled, y_train)# 输出最佳参数
print(fBest Parameters: {grid_search.best_params_})
print(fBest Score: {grid_search.best_score_:.2f})4. 实战案例
4.1 房价预测
4.1.1 数据准备
假设我们有一个房价数据集包含房屋的各种特征和价格
import pandas as pd# 读取数据集
data pd.read_csv(house_prices.csv)# 特征选择和标签
X data[[num_rooms, size, location]]
y data[price]4.1.2 数据预处理
对数据进行预处理和标准化
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split# 数据拆分
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42)# 标准化数据
scaler StandardScaler()
X_train_scaled scaler.fit_transform(X_train)
X_test_scaled scaler.transform(X_test)4.1.3 模型训练与评估
使用线性回归模型进行训练和评估
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 创建模型
model LinearRegression()
model.fit(X_train_scaled, y_train)# 预测
y_pred model.predict(X_test_scaled)# 评估模型
mse mean_squared_error(y_test, y_pred)
print(fMean Squared Error: {mse:.2f})4.2 客户细分
4.2.1 数据准备
假设我们有一个客户数据集包含客户的特征信息
# 读取数据集
data pd.read_csv(customer_data.csv)# 特征选择
X data[[age, income, spending_score]]4.2.2 K-Means 聚类
使用 K-Means 聚类进行客户细分
from sklearn.cluster import KMeans# 创建 K-Means 模型
model KMeans(n_clusters4, random_state42)
model.fit(X)# 获取聚类结果
labels model.predict(X)# 添加聚类标签到数据中
data[cluster] labels4.2.3 可视化
可视化客户聚类结果
import matplotlib.pyplot as plt# 可视化聚类结果
plt.scatter(data[age], data[income], clabels, cmapviridis)
plt.xlabel(Age)
plt.ylabel(Income)
plt.title(Customer Clustering)
plt.show()5. 总结
scikit-learn 是一个功能强大的机器学习库提供了丰富的工具和功能来处理各种数据分析任务。这里我嫩介绍了 scikit-learn 的基础知识包括数据加载与预处理、分类与回归模型、聚类与降维技术、模型选择与评估等内容。scikit-learn 官方文档