机器学习简介
机器学习 (ML) 是人工智能 (AI) 的一个子领域,专注于创建能够学习、适应、预测和关联的计算机系统,所有这些都无需遵循明确的指令。
机器学习的目标是通过利用算法并创建可以产生用户友好输出的通用模型来理解和处理大量数据。
机器学习通常按照以下步骤进行:
- 从各种来源收集数据
- 清理数据以具有同质性
- 使用 ML 算法构建模型
- 从模型结果中获得见解
- 数据可视化并将结果转换为可视化图表
1. 从各种来源收集数据
机器学习需要大量数据来制作可投入生产的模型。
ML 的数据收集有两种方式完成:自动 和 手动。
- 自动数据收集利用从网络上抓取数据的程序和脚本。
- 手动数据收集是手动收集数据并均匀准备数据的过程。
使用 Python 进行网络抓取来自动收集数据:
import requests
from bs4 import BeautifulSoup
# Scrape data from a website
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Extract relevant information from the website
data = soup.find('div', class_='data-container').text
# Store the gathered data
with open('data.txt', 'w') as file:
file.write(data)
2. 清理数据以具有同质性
确保数据同质性是机器学习发挥作用并产生结果的关键一步。
机器学习的数据清理可以手动完成,也可以借助算法自动完成,包括修复和/或删除数据集中不正确、损坏、格式错误、重复和不完整的数据。
使用 Python 和 pandas 清理数据:
import pandas as pd
# Read data from a CSV file
data = pd.read_csv('data.csv')
# Remove duplicates
data = data.drop_duplicates()
# Fix missing values by filling with mean
data['column_name'].fillna(data['column_name'].mean(), inplace=True)
# Remove incorrect or corrupted data
data = data[data['column_name'] > 0]
# Save cleaned data to a new file
data.to_csv('cleaned_data.csv', index=False)
3. 使用 ML 算法构建模型
ML(机器学习)model 是一个包含机器学习算法结果的文件,用于对动态输入进行推理。
ML(机器学习)模型的工作原理是包含与实时输入相匹配的模式列表,然后根据匹配的模式生成输出。
ML 模型可以具有各种结构类型,最常见的类型是:二元分类、多类分类、 和 回归。
- 二元分类模型预测二元结果,即两种可能结果之一。
- 多类分类模型预测两个以上结果之一。
- 回归模型预测数值。
构建机器学习模型的过程称为training。
机器学习训练是借助算法完成的,分为两类:监督学习和无监督学习。
- 监督学习 (SL) 是指使用标记数据(即具有输入值和输出值的数据)来训练 ML 模型。
- 无监督学习 (UL) 是指使用未标记数据(即没有标签或没有已知结果的数据)训练 ML 模型。
神经网络 (NN) 是无监督学习的核心,由数据集中数据之间的映射组成,允许建立关联。
使用 Python 的 scikit-learn 库创建二元分类模型:
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Load the dataset
X, y = load_dataset()
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Create a Logistic Regression model
model = LogisticRegression()
# Train the model
model.fit(X_train, y_train)
# Make predictions on the test set
y_pred = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, y_pred)
4. 从模型结果中获得见解
从机器学习模型中获得洞察意味着了解以前未知的模式并测试模型做出预测和结论的能力。
获得见解对于验证模型的有效性并确定是否需要对学习算法进行任何更改非常重要。
使用 Python 分析训练模型中的特征重要性:
import matplotlib.pyplot as plt
# Get the feature importance scores
importances = model.coef_[0]
# Sort feature importance in descending order
sorted_indices = importances.argsort()[::-1]
sorted_importances = importances[sorted_indices]
# Plot the feature importance
plt.bar(range(len(sorted_importances)), sorted_importances)
plt.xticks(range(len(sorted_importances)), sorted_indices)
plt.xlabel('Feature Index')
plt.ylabel('Importance Score')
plt.title('Feature Importance')
plt.show()
5. 数据可视化并将结果转换为可视化图表
ML 模型的数据可视化包括将输出数据放在图表上并提供交互式 API。
使用 Python 创建预测值的散点图:
import matplotlib.pyplot as plt
# Get the predicted values
y_pred = model.predict(X)
# Create a scatter plot
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('Predicted Values')
plt.show()
结论
上述代码示例演示了机器学习每个步骤的实际实现,从数据收集和清理到模型构建、洞察和数据可视化。