python机器学习包
时间: 2024-12-26 22:19:08 浏览: 3
### Python机器学习库概述
#### Scikit-learn
Scikit-learn 是一个基于Python的简单高效的数据挖掘和数据分析库。该库建立在 NumPy、SciPy 和 Matplotlib 之上,提供了丰富的工具集用于数据预处理、特征提取、模型选择以及评估等功能[^3]。
对于初学者来说,Scikit-learn 提供了许多经典的监督学习(如线性回归、逻辑回归和支持向量机)和无监督学习(聚类分析、降维方法等)算法实现。下面是一个使用 Scikit-learn 进行鸢尾花分类的例子:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 加载数据集
data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target)
# 训练k近邻模型并预测测试样本标签
clf = KNeighborsClassifier().fit(X_train, y_train)
print(f'Accuracy: {clf.score(X_test, y_test):.2f}')
```
#### TensorFlow与Keras
TensorFlow 是由谷歌开发的强大开源软件库,专为数值计算而设计,在深度神经网络和其他复杂的机器学习任务方面表现出色。由于 Keras 已经成为 TensorFlow 的一部分,因此可以通过安装 TensorFlow 来获取 Keras 支持 `pip install tensorflow`[^1]。
以下是利用 Keras 构建一个多层感知器来进行手写数字识别的小例子:
```python
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 数据预处理
x_train = x_train.reshape((60000, 28 * 28)).astype('float32') / 255
x_test = x_test.reshape((10000, 28 * 28)).astype('float32') / 255
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
model = Sequential([
Dense(512, activation='relu', input_shape=(28 * 28,)),
Dense(10, activation='softmax')
])
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(x_train, y_train,
epochs=5,
batch_size=128,
validation_split=.2)
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f'Test accuracy: {test_acc:.4f}')
```
#### PyTorch
作为另一个流行的深度学习平台,PyTorch 特别强调灵活性和易用性。它采用动态计算图机制,允许开发者更方便地定义复杂模型架构,并且能够很好地支持GPU加速运算。这里给出一段简单的代码片段展示如何创建张量并执行基本算术操作[^2]:
```python
import torch
# 创建张量
x = torch.tensor([[1., 2.], [3., 4.]])
y = x + 2
print("Result of addition:\n", y)
if torch.cuda.is_available():
device = 'cuda'
else:
device = 'cpu'
# 将张量移动到指定设备上运行
tensor_on_device = x.to(device)
print(f"Tensor on {device}:\n", tensor_on_device)
```
阅读全文