机器学习(三)sklearn机器学习
一、概念
sklearn就是scikit-learn,是一个基于Numpy、SciPy、Matplotlib构建的机器学习工具,提供了大量用于传统机器学习的算法工具。
二、核心功能
1 数据预处理
在将数据送入模型前,必须进行清洗和标准化。
标准化/归一化:StandardScaler
, MinMaxScaler
将数据缩放到特定区间,消除量纲影响。
编码分类特征: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}")