当前位置: 首页 > news >正文

网站seo外链建设四川seo快速排名

网站seo外链建设,四川seo快速排名,南京银城建设 网站,做养生网站需要证件吗Scikit-learn 简单介绍和入门示例 1. 概述 Scikit-learn(简称 sklearn)是 Python 生态中最流行的 机器学习库,主要用于传统 ML 任务。它基于 NumPy、SciPy 和 Matplotlib,提供了统一的 API,涵盖 数据预处理、特征工程、…

Scikit-learn 简单介绍和入门示例

1. 概述

Scikit-learn(简称 sklearn)是 Python 生态中最流行的 机器学习库,主要用于传统 ML 任务。它基于 NumPy、SciPy 和 Matplotlib,提供了统一的 API,涵盖 数据预处理、特征工程、模型训练、评估与调优

定位:

  • 适合:中小规模数据,原型验证,教学与科研
  • 不适合:海量数据分布式计算(推荐 Spark ML、Dask ML)

2. 设计思想

Scikit-learn 遵循 模块化、统一接口、组合化 的原则。
主要接口规范:

  • fit(X, y=None):训练模型 / 学习参数
  • predict(X):预测
  • transform(X):数据变换(特征工程、降维)
  • fit_transform(X):训练并变换(常用于预处理)
  • score(X, y):评估模型
  • get_params() / set_params():超参数管理

统一接口的好处:无论是 SVM、决策树还是 PCA,调用方式都基本相同。


3. 模块全景

3.1 数据预处理

  • 标准化与归一化StandardScaler, MinMaxScaler
  • 特征选择SelectKBest, RFE
  • 降维PCA, TruncatedSVD, TSNE

3.2 监督学习

  • 分类

    • 线性:LogisticRegression, SGDClassifier
    • 树模型:DecisionTreeClassifier, RandomForestClassifier, GradientBoostingClassifier
    • SVM:SVC
    • 朴素贝叶斯:GaussianNB
  • 回归

    • 线性:LinearRegression, Ridge, Lasso
    • 树模型:DecisionTreeRegressor, RandomForestRegressor
    • 支持向量回归:SVR

3.3 非监督学习

  • 聚类KMeans, DBSCAN, AgglomerativeClustering, GaussianMixture
  • 降维PCA, NMF

3.4 模型选择与评估

  • 交叉验证cross_val_score, KFold

  • 调参GridSearchCV, RandomizedSearchCV

  • 指标

    • 分类:准确率、精确率、召回率、F1、ROC-AUC
    • 回归:均方误差 (MSE)、R²

3.5 工程工具

  • Pipeline:将预处理和模型打包成流水线
  • Joblib:模型保存与加载
  • 并行计算:内置多核并行支持

4. 工作流程

一个典型的 Scikit-learn 项目通常包括:

  1. 数据准备:加载、清洗、划分(train_test_split
  2. 预处理:标准化、特征选择、降维
  3. 建模:选择分类/回归/聚类算法
  4. 评估:使用交叉验证与指标函数
  5. 调参GridSearchCVRandomizedSearchCV
  6. 部署:模型持久化 (joblib.dump/load)

5. 简单示例

鸢尾花分类 为例:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
from sklearn.metrics import accuracy_score# 数据加载
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 构建流水线:标准化 + SVM 分类器
pipeline = Pipeline([("scaler", StandardScaler()),("clf", SVC(kernel="linear"))
])# 训练与预测
pipeline.fit(X_train, y_train)
y_pred = pipeline.predict(X_test)# 评估
print("Accuracy:", accuracy_score(y_test, y_pred))

6. 优势与不足

优势

  • 统一 API,学习成本低
  • 覆盖大多数传统 ML 算法
  • 性能不错,底层部分用 Cython/C++ 优化
  • 文档和社区生态完善

不足

  • 不支持大规模分布式数据
  • 不包含深度学习模型
  • 在线学习能力有限(部分算法支持 partial_fit

7. 适用场景

  • 原型验证:快速测试不同算法
  • 教学与科研:直观 API 适合学习
  • 工程应用:中小规模数据的分类/回归/聚类
  • 特征工程 + 调参:配合 Pandas/Numpy 使用

8.入门示例yanz演示

阶段一:入门(快速上手)

目标:掌握 Scikit-learn 的基本 API,能完成简单的分类/回归任务。

学习要点
  • 熟悉 fit / predict / transform 接口
  • 使用 train_test_split 划分数据
  • 调用常见模型:LinearRegression, LogisticRegression, SVC, KNeighborsClassifier
  • 使用 accuracy_scoremean_squared_error 等指标
综合示例:鸢尾花分类
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# 数据集
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 模型
clf = LogisticRegression(max_iter=200)
clf.fit(X_train, y_train)# 预测与评估
y_pred = clf.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))

阶段二:提升(实战技巧)

目标:掌握 Pipeline、特征工程、模型调参,能在真实数据集上完成较复杂的任务。

学习要点
  • Pipeline:整合预处理与建模
  • 特征工程StandardScaler, OneHotEncoder, PCA
  • 交叉验证cross_val_score
  • 超参数调优GridSearchCV, RandomizedSearchCV
  • 模型选择:比较不同模型性能
综合示例:房价预测(加州房价数据集)
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestRegressor
from sklearn.pipeline import Pipeline
from sklearn.metrics import mean_squared_error# 数据集
X, y = fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 流水线:标准化 + 随机森林
pipe = Pipeline([("scaler", StandardScaler()),("rf", RandomForestRegressor(random_state=42))
])# 超参数搜索
param_grid = {"rf__n_estimators": [50, 100],"rf__max_depth": [10, 20, None]
}
grid = GridSearchCV(pipe, param_grid, cv=3, scoring="neg_mean_squared_error")
grid.fit(X_train, y_train)# 预测与评估
y_pred = grid.predict(X_test)
print("Best params:", grid.best_params_)
print("MSE:", mean_squared_error(y_test, y_pred))

阶段三:高级(综合应用)

目标:能 系统性构建机器学习项目,包括数据预处理、特征选择、模型集成、结果可视化与解释。

学习要点
  • 特征选择SelectKBest, RFE
  • 集成学习VotingClassifier, StackingClassifier
  • 概率估计与模型校准CalibratedClassifierCV
  • 模型解释permutation_importance, PartialDependenceDisplay
  • 保存与部署joblib.dump, joblib.load
综合示例:信用卡客户违约预测(分类任务)
import joblib
import pandas as pd
from sklearn.model_selection import train_test_split, RandomizedSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier, VotingClassifier
from sklearn.pipeline import Pipeline
from sklearn.metrics import classification_report# 假设已加载信用卡客户数据 (X: 特征, y: 是否违约)
data = pd.read_csv("credit_card.csv")
X = data.drop("default", axis=1)
y = data["default"]X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)# 流水线:预处理 + 特征选择 + 集成学习
pipe = Pipeline([("scaler", StandardScaler()),("select", SelectKBest(score_func=f_classif, k=10)),("clf", VotingClassifier(estimators=[("rf", RandomForestClassifier(random_state=42)),("gb", GradientBoostingClassifier(random_state=42))], voting="soft"))
])# 随机搜索调参
param_dist = {"clf__rf__n_estimators": [100, 200],"clf__gb__learning_rate": [0.05, 0.1]
}
search = RandomizedSearchCV(pipe, param_dist, cv=3, scoring="f1", n_iter=4, random_state=42)
search.fit(X_train, y_train)# 预测与评估
y_pred = search.predict(X_test)
print("Best params:", search.best_params_)
print(classification_report(y_test, y_pred))# 模型保存
joblib.dump(search.best_estimator_, "credit_model.pkl")

总结

  • 入门:掌握 API + 简单模型(Logistic/SVC/LinearRegression)
  • 提升:学会 Pipeline、特征工程、调参(GridSearchCV/RandomizedSearchCV)
  • 高级:综合应用,能做完整 ML 项目(特征选择 + 集成学习 + 模型解释 + 部署)

Scikit-learn 常用 API 汇总

1️、数据集工具

from sklearn import datasets
from sklearn.model_selection import train_test_split
  • datasets.load_iris():鸢尾花分类
  • datasets.load_digits():手写数字识别
  • datasets.fetch_california_housing():加州房价数据
  • datasets.make_classification():生成分类数据
  • datasets.make_regression():生成回归数据
  • train_test_split(X, y, test_size=0.2, random_state=42):划分训练/测试集

2️、数据预处理

from sklearn.preprocessing import StandardScaler, MinMaxScaler, Normalizer
from sklearn.preprocessing import OneHotEncoder, LabelEncoder
  • 标准化StandardScaler().fit_transform(X)
  • 归一化MinMaxScaler().fit_transform(X)
  • 正则化Normalizer().fit_transform(X)
  • 独热编码OneHotEncoder().fit_transform(X)
  • 标签编码LabelEncoder().fit_transform(y)

3️、特征工程

from sklearn.feature_selection import SelectKBest, f_classif, RFE
from sklearn.decomposition import PCA
  • 特征选择SelectKBest(score_func=f_classif, k=10).fit_transform(X, y)
  • 递归特征消除RFE(estimator, n_features_to_select=5).fit_transform(X, y)
  • 主成分分析PCA(n_components=2).fit_transform(X)

4️、常用模型

分类

from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifier
  • 逻辑回归:LogisticRegression()
  • 支持向量机:SVC(kernel="linear")
  • 决策树:DecisionTreeClassifier()
  • 随机森林:RandomForestClassifier(n_estimators=100)
  • 梯度提升:GradientBoostingClassifier()
  • 朴素贝叶斯:GaussianNB()
  • 最近邻:KNeighborsClassifier(n_neighbors=5)

回归

from sklearn.linear_model import LinearRegression, Ridge, Lasso
from sklearn.svm import SVR
from sklearn.ensemble import RandomForestRegressor
  • 线性回归:LinearRegression()
  • 岭回归:Ridge(alpha=1.0)
  • Lasso 回归:Lasso(alpha=0.1)
  • 支持向量回归:SVR(kernel="rbf")
  • 随机森林回归:RandomForestRegressor(n_estimators=100)

聚类 / 非监督学习

from sklearn.cluster import KMeans, DBSCAN, AgglomerativeClustering
from sklearn.mixture import GaussianMixture
  • KMeans 聚类:KMeans(n_clusters=3)
  • DBSCAN:DBSCAN(eps=0.5, min_samples=5)
  • 层次聚类:AgglomerativeClustering(n_clusters=3)
  • 高斯混合模型:GaussianMixture(n_components=3)

5️、模型评估

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score
from sklearn.metrics import confusion_matrix, classification_report
from sklearn.metrics import mean_squared_error, r2_score
  • 分类指标

    • accuracy_score(y_true, y_pred)
    • precision_score(y_true, y_pred)
    • recall_score(y_true, y_pred)
    • f1_score(y_true, y_pred)
    • roc_auc_score(y_true, y_prob)
    • classification_report(y_true, y_pred)
  • 回归指标

    • mean_squared_error(y_true, y_pred)
    • r2_score(y_true, y_pred)
  • 混淆矩阵confusion_matrix(y_true, y_pred)


6️、模型选择与调参

from sklearn.model_selection import cross_val_score, KFold, StratifiedKFold
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV
  • 交叉验证:cross_val_score(model, X, y, cv=5)

  • K 折:KFold(n_splits=5)

  • 分层 K 折:StratifiedKFold(n_splits=5)

  • 网格搜索:

    GridSearchCV(estimator, param_grid, cv=3, scoring="accuracy")
    
  • 随机搜索:

    RandomizedSearchCV(estimator, param_distributions, cv=3, n_iter=10)
    

7️、工程工具

from sklearn.pipeline import Pipeline
import joblib
  • 流水线

    pipe = Pipeline([("scaler", StandardScaler()),("clf", SVC())
    ])
    
  • 模型保存joblib.dump(model, "model.pkl")

  • 模型加载model = joblib.load("model.pkl")


http://www.dtcms.com/a/558931.html

相关文章:

  • 住房和城乡建设部网站预售证公司介绍模板图片
  • 可以做手机网页的网站服装网站建设方法
  • 外卖网站建设费用怎么上传网站源码
  • Linux操作系统母盘便捷持久化部署方案
  • 东莞网站建设优化技术成都网站建设哪家
  • 永久免费的wap建站平台宿松网站建设设计
  • 大连网站怎么推广360seo关键词优化
  • 自己做qq头像的网站中卫企业管理培训网站
  • 大良网站建设如何wordpress的登录地址
  • 番禺建设局网站首页如何给网站做右侧导航栏
  • 如何做响应式的网站外贸做那种网站
  • 响应式环保网站模板下载wordpress头像上传插件
  • 个人网站企业网站网站自助建站软件
  • 环保网站 中企动力建设深圳哪些公司需要做网站
  • 网站备案 流程介绍几个有趣的网站
  • wordpress整体加速seo上海公司
  • 江油网站建设制作策划哪家专业技术支持 东莞网站建设
  • STM32项目分享:基于STM32的小区无线手机充电装置设计
  • 上海网站建设公司招聘wordpress 菜单怎么使用方法
  • 风雨同舟 网站建设领动云建站
  • 高邮市城乡建设局网站中装建设公司怎么样
  • 自己做报名网站教程搜索引擎seo排名优化
  • 服装网站建设的技术可行性企业文化墙制作
  • SSH连接虚拟机失败排查指南
  • 连云制作企业网站wordpress获取评论用户
  • 徐州网站开发案例wordpress5.2附加域
  • 3 如何进行网站优化设计百度推广二级代理商
  • 网站跳转qqWordPress底部添加音乐
  • 免费网站平台推荐江苏企业网站制作哪家好
  • 记录一个hel_delay失效的情况