Python 是实现机器学习算法的绝佳选择,因为它拥有丰富的库和框架,如 NumPy、Pandas、Scikit-learn、TensorFlow 和 PyTorch 等。以下是一些常见的机器学习算法及其 Python 实现示例:
1. 线性回归(Linear Regression)
线性回归是一种用于预测连续值的算法。以下是使用 Scikit-learn 实现的示例:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 示例数据
data = {'X': [1, 2, 3, 4, 5],'y': [2, 4, 6, 8, 10]
}
df = pd.DataFrame(data)# 数据划分
X = df[['X']]
y = df['y']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 模型训练
model = LinearRegression()
model.fit(X_train, y_train)# 预测与评估
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"预测值: {y_pred}")
print(f"均方误差: {mse}")
2. 逻辑回归(Logistic Regression)
逻辑回归用于二分类问题。以下是实现代码:
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score# 示例数据
data = {'X': [1, 2, 3, 4, 5, 6, 7, 8],'y': [0, 0, 0, 0, 1, 1, 1, 1]
}
df = pd.DataFrame(data)# 数据划分
X = df[['X']]
y = df['y']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 模型训练
model = LogisticRegression()
model.fit(X_train, y_train)# 预测与评估
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"预测值: {y_pred}")
print(f"准确率: {accuracy}")
3. 决策树(Decision Tree)
决策树是一种用于分类和回归的树形模型。以下是分类树的实现:
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report# 示例数据
data = {'X1': [1, 2, 3, 4, 5, 6, 7, 8],'X2': [8, 7, 6, 5, 4, 3, 2, 1],'y': [0, 0, 0, 0, 1, 1, 1, 1]
}
df = pd.DataFrame(data)# 数据划分
X = df[['X1', 'X2']]
y = df['y']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 模型训练
model = DecisionTreeClassifier()
model.fit(X_train, y_train)# 预测与评估
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))
4. 支持向量机(SVM)
SVM 是一种强大的分类算法。以下是使用 Scikit-learn 的实现:
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score# 示例数据
data = {'X1': [1, 2, 3, 4, 5, 6, 7, 8],'X2': [8, 7, 6, 5, 4, 3, 2, 1],'y': [0, 0, 0, 0, 1, 1, 1, 1]
}
df = pd.DataFrame(data)# 数据划分
X = df[['X1', 'X2']]
y = df['y']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 模型训练
model = SVC(kernel='linear')
model.fit(X_train, y_train)# 预测与评估
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy}")
5. K-近邻(K-Nearest Neighbors, KNN)
KNN 是一种基于实例的学习算法,用于分类和回归。
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score# 示例数据
data = {'X1': [1, 2, 3, 4, 5, 6, 7, 8],'X2': [8, 7, 6, 5, 4, 3, 2, 1],'y': [0, 0, 0, 0, 1, 1, 1, 1]
}
df = pd.DataFrame(data)# 数据划分
X = df[['X1', 'X2']]
y = df['y']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 模型训练
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)# 预测与评估
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy}")
6. 神经网络(Neural Network)
可以使用 TensorFlow 或 PyTorch 来实现。以下是使用 TensorFlow 的简单示例:
import tensorflow as tf
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler# 生成数据
X, y = make_classification(n_samples=100, n_features=2, n_classes=2, random_state=42)
X = StandardScaler().fit_transform(X)# 数据划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 构建模型
model = tf.keras.Sequential([tf.keras.layers.Dense(10, activation='relu', input_shape=(X_train.shape[1],)),tf.keras.layers.Dense(1, activation='sigmoid')
])model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])# 训练模型
model.fit(X_train, y_train, epochs=10, batch_size=5, validation_split=0.2)# 评估模型
loss, accuracy = model.evaluate(X_test, y_test)
print(f"测试集准确率: {accuracy}")
总结
以上是几种常见机器学习算法的 Python 实现。根据具体问题,你可以选择合适的算法和库。如果需要更复杂的模型(如深度学习),可以使用 TensorFlow 或 PyTorch。如果你有特定的算法或问题需要实现,可以告诉我,我会为你提供更详细的代码和解释!
文章来源于zlibrary图书馆中《Python编程从入门到实践》书的Python机器学习算法章节内容