机器学习(三)sklearn机器学习

发布于:2025-09-01 ⋅ 阅读:(16) ⋅ 点赞:(0)

一、概念

sklearn就是scikit-learn,是一个基于Numpy、SciPy、Matplotlib构建的机器学习工具,提供了大量用于传统机器学习的算法工具。

二、核心功能

1 数据预处理

在将数据送入模型前,必须进行清洗和标准化。

标准化/归一化:StandardScalerMinMaxScaler 将数据缩放到特定区间,消除量纲影响。

编码分类特征:LabelEncoder 用于标签编码,OneHotEncoder 用于独热编码。

处理缺失值:SimpleImputer 用于填充缺失值(如用均值、中位数等)。

2 数据集处理

数据划分:train_test_split函数用于将数据集随机划分为训练集和测试集。

交叉验证:KFold、cross_val_score等用于k折交叉验证,更稳健地评估模型。

3 监督学习算法

3.1 分类

sklearn.neighbors.KNeighborsClassifier k-近邻
sklearn.naive_bayes.MultinomialNB 贝叶斯
sklearn.linear_model.LogisticRegressioon 逻辑回归
sklearn.tree.DecisionTreeClassifier 决策树
sklearn.ensemble.RandomForestClassifier 随机森林

3.2 回归

sklearn.linear_model.LinearRegression线性回归
sklearn.linear_model.Ridge岭回归

3.3 无监督学习

sklearn.cluster.KMeans 聚类
from sklearn.decomposition import SomeModel 降维

4 进行训练

estimator.fit(x_train, y_train)

5 模型评估

(1)方式1,直接对比
		y_predict = estimator.predict(x_test)
		y_test == y_predict
  	(2)方式2, 计算准确率
  		accuracy = estimator.score(x_test, y_test)

6 使用模型预测

y_predict = estimator.predict(x_true)

代码实例

''' 1. 导入必要的模块'''
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

'''2. 加载数据'''
iris = datasets.load_iris()
X = iris.data  # 特征矩阵
y = iris.target # 目标向量

''' 3. 划分训练集和测试集'''
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

'''4. 数据预处理:标准化'''
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train) # 在训练集上计算均值和方差,并应用转换
X_test_scaled = scaler.transform(X_test)       # 使用训练集的参数对测试集进行转换

'''5. 选择并初始化模型'''
model = RandomForestClassifier(n_estimators=100, random_state=42)

'''6. 在训练数据上训练(拟合)模型'''
model.fit(X_train_scaled, y_train)

''' 7. 在测试数据上进行预测'''
y_pred = model.predict(X_test_scaled)

'''8. 评估模型性能'''
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")