Scikit-learn(sklearn)是一个基于Python的开源机器学习库,提供了广泛的基础能力和SDK,帮助开发者轻松构建和部署机器学习模型。下面我们将介绍sklearn的主要功能和一些常用的SDK。
基础能力
1. 数据预处理
数据预处理是机器学习的第一步,包括数据清洗、编码、标准化、特征提取和特征选择等功能。常用的模块有sklearn.preprocessing
和sklearn.feature_selection
。
- 标准化 :使用
StandardScaler
将数据缩放到均值为0,方差为1的范围内。 - 独热编码 :使用
OneHotEncoder
将分类数据转换为数值数据。
示例代码:
ini
python
from sklearn.preprocessing import StandardScaler, OneHotEncoder
import numpy as np
# 标准化示例
data = np.array([[1, 2], [3, 4]])
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)
print(scaled_data)
# 独热编码示例
encoder = OneHotEncoder()
data = np.array([[0], [1], [2]])
encoded_data = encoder.fit_transform(data).toarray()
print(encoded_data)
2. 机器学习算法
sklearn支持各种监督学习和无监督学习算法,包括:
- 分类:支持向量机(SVM)、最近邻、逻辑回归、随机森林、决策树等。
- 回归:支持向量回归(SVR)、线性回归、岭回归、Lasso回归等。
- 聚类:K-均值聚类、谱聚类、DBSCAN聚类等。
- 降维:PCA(主成分分析)、t-SNE等。
示例代码:
ini
python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练SVM分类器
svm = SVC(kernel='rbf', C=1)
svm.fit(X_train, y_train)
# 预测并评估准确率
y_pred = svm.predict(X_test)
print("准确率:", accuracy_score(y_test, y_pred))
3. 模型评估和选择
sklearn提供交叉验证、网格搜索等工具用于模型评估和参数优化。
示例代码:
python
python
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
# 定义参数网格
param_grid = {'n_estimators': [10, 50, 100], 'max_depth': [5, 10, 15]}
# 使用网格搜索优化随机森林分类器
grid_search = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid_search.fit(X_train, y_train)
print("最佳参数:", grid_search.best_params_)
print("最佳得分:", grid_search.best_score_)
4. 数据集
sklearn提供多个内置数据集,如鸢尾花数据集、波士顿房价数据集等,方便用户进行学习和测试。
示例代码:
python
python
from sklearn import datasets
# 加载波士顿房价数据集
boston = datasets.load_boston()
print("数据特征:", boston.feature_names)
print("数据目标:", boston.target)
常用SDK
1. 分类算法SDK
sklearn.svm.SVC()
: 支持向量机分类器。sklearn.ensemble.RandomForestClassifier()
: 随机森林分类器。sklearn.linear_model.LogisticRegression()
: 逻辑回归分类器。
2. 回归算法SDK
sklearn.linear_model.LinearRegression()
: 线性回归。sklearn.svm.SVR()
: 支持向量回归。sklearn.ensemble.GradientBoostingRegressor()
: 梯度提升回归。
3. 聚类算法SDK
sklearn.cluster.KMeans()
: K-均值聚类。sklearn.cluster.DBSCAN()
: DBSCAN聚类。
4. 降维算法SDK
sklearn.decomposition.PCA()
: 主成分分析(PCA)。sklearn.manifold.TSNE()
: t-SNE降维。
5. 数据预处理SDK
sklearn.preprocessing.StandardScaler()
: 标准化。sklearn.preprocessing.OneHotEncoder()
: 独热编码。
这些SDK和基础能力使得sklearn成为Python中最受欢迎的机器学习库之一。