scikit-learn 基础教程

scikit-learn 基础教程

scikit-learn 是一个基于 Python 的机器学习库,提供了简单而高效的工具用于数据挖掘和数据分析。本文将详细介绍 scikit-learn 的基本概念、安装方法、主要功能和常用的机器学习算法,帮助你快速上手并应用于实际项目。

目录

  1. scikit-learn 简介
  2. 安装 scikit-learn
  3. 数据预处理
  4. 常用机器学习算法
  5. 模型评估与选择
  6. 总结

scikit-learn 简介

scikit-learn 是一个开源的机器学习库,基于 NumPy、SciPy 和 matplotlib。它提供了简单而一致的 API,涵盖了预处理、分类、回归、聚类、降维等多种算法和工具,是数据科学家和机器学习工程师常用的工具之一。

安装 scikit-learn

你可以通过 pip 或 conda 安装 scikit-learn。

使用 pip 安装

pip install scikit-learn

使用 conda 安装

conda install scikit-learn

数据预处理

数据集加载

scikit-learn 提供了一些内置的数据集,可以方便地进行学习和测试。

from sklearn.datasets import load_iris

iris = load_iris()
X = iris.data
y = iris.target

数据标准化

数据标准化是数据预处理的重要步骤,可以将不同尺度的数据转换到同一尺度。

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

数据分割

在进行模型训练前,通常将数据集划分为训练集和测试集。

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

常用机器学习算法

线性回归

线性回归用于回归问题,即预测连续值。

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

逻辑回归

逻辑回归用于分类问题,即预测离散类别。

from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

决策树

决策树可以用于分类和回归问题。

from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

随机森林

随机森林是一种集成学习方法,通过多棵决策树提高模型的准确性和稳健性。

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

支持向量机

支持向量机是一种强大的分类和回归工具,特别适用于高维空间。

from sklearn.svm import SVC

model = SVC()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

K 近邻算法

K 近邻算法是一种简单的分类和回归算法。

from sklearn.neighbors import KNeighborsClassifier

model = KNeighborsClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

聚类算法

K-Means 聚类是一种常见的无监督学习算法,用于将数据分成 K 个簇。

from sklearn.cluster import KMeans

model = KMeans(n_clusters=3)
model.fit(X_train)
clusters = model.predict(X_test)

模型评估与选择

交叉验证

交叉验证用于评估模型的泛化性能。

from sklearn.model_selection import cross_val_score

model = RandomForestClassifier()
scores = cross_val_score(model, X, y, cv=5)
print(scores)

评价指标

常用的分类评价指标有准确率、精确率、召回率和 F1 分数。回归评价指标有均方误差和 R²。

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='weighted')
recall = recall_score(y_test, y_pred, average='weighted')
f1 = f1_score(y_test, y_pred, average='weighted')

print(f"Accuracy: {accuracy}")
print(f"Precision: {precision}")
print(f"Recall: {recall}")
print(f"F1 Score: {f1}")

网格搜索

网格搜索用于调优模型超参数。

from sklearn.model_selection import GridSearchCV

param_grid = {
    'n_estimators': [100, 200, 300],
    'max_depth': [None, 10, 20]
}
model = RandomForestClassifier()
grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_train, y_train)

print(grid_search.best_params_)

总结

本文详细介绍了 scikit-learn 的基本概念、安装方法、数据预处理、常用机器学习算法、模型评估与选择等内容。通过不断实践和深入学习,你将能够熟练掌握 scikit-learn,并应用于各种机器学习项目。

Happy coding!

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值