ML神器:sklearn的快速使用及入门
### ML神器:sklearn的快速使用及入门 #### 一、获取数据 **1.1 导入sklearn数据集** 在开始机器学习项目之前,首先需要获取数据。`sklearn`内置了一些常用的数据集,方便用户进行实验和学习。要使用这些数据集,需要先导入`datasets`模块: ```python from sklearn import datasets ``` 常见的数据集包括鸢尾花(Iris)、波士顿房价等。例如,加载鸢尾花数据集的代码如下: ```python iris = datasets.load_iris() X = iris.data # 特征向量 y = iris.target # 样本标签 ``` **1.2 创建数据集** 除了使用`sklearn`提供的数据集外,还可以自定义数据集。例如,使用`make_classification`生成分类问题的数据集: ```python from sklearn.datasets import make_classification X, y = make_classification(n_samples=6, n_features=5, n_informative=2, n_redundant=2, n_classes=2, n_clusters_per_class=2, scale=1.0, random_state=20) ``` - `n_samples`: 指定样本数量。 - `n_features`: 特征数量。 - `n_informative`: 告知算法有多少特征是有信息的。 - `n_redundant`: 冗余特征数量。 - `n_classes`: 分类数目。 - `n_clusters_per_class`: 每个类别的簇数量。 - `scale`: 控制特征间的方差大小。 - `random_state`: 设置随机种子,确保结果可复现。 #### 二、数据预处理 **2.1 数据归一化** 数据预处理是机器学习的重要步骤,常见的预处理方法之一就是数据归一化,使数据处于相同尺度上,避免某些特征因数值范围过大而主导模型训练。 - **基于均值和标准差的标准化**: ```python from sklearn.preprocessing import StandardScaler scaler = StandardScaler().fit(X_train) X_train_scaled = scaler.transform(X_train) X_test_scaled = scaler.transform(X_test) ``` - **最小最大缩放**: ```python from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler(feature_range=(0, 1)).fit(X_train) X_train_scaled = scaler.transform(X_train) X_test_scaled = scaler.transform(X_test) ``` **2.2 正则化** 正则化用于调整样本的规模,使得每个样本的范数为1。这在计算样本间的距离或相似度时非常重要。 ```python from sklearn.preprocessing import Normalizer normalizer = Normalizer().fit(X) # fit does nothing X_normalized = normalizer.transform(X) ``` #### 三、训练建模 完成数据预处理后,可以使用`sklearn`中的各种算法进行模型训练。常见的算法包括逻辑回归、决策树、支持向量机等。 **3.1 逻辑回归** ```python from sklearn.linear_model import LogisticRegression model = LogisticRegression() model.fit(X_train, y_train) ``` **3.2 决策树** ```python from sklearn.tree import DecisionTreeClassifier model = DecisionTreeClassifier() model.fit(X_train, y_train) ``` **3.3 支持向量机** ```python from sklearn.svm import SVC model = SVC(kernel='linear') model.fit(X_train, y_train) ``` #### 四、模型评估 模型训练完成后,需要对其进行评估。常见的评估指标有准确率、精确率、召回率、F1分数等。 ```python from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score y_pred = model.predict(X_test) print("Accuracy:", accuracy_score(y_test, y_pred)) print("Precision:", precision_score(y_test, y_pred)) print("Recall:", recall_score(y_test, y_pred)) print("F1 Score:", f1_score(y_test, y_pred)) ``` #### 五、预测 利用训练好的模型进行预测。 ```python predictions = model.predict(new_data) ``` 通过上述步骤,可以快速入门`sklearn`并构建基本的机器学习模型。在整个过程中,`sklearn`提供了丰富的API和工具,极大地简化了开发过程,使得初学者能够快速掌握机器学习的基本技能,并进行实际应用。