Python 机器学习入门:数据集、数据类型和统计学


机器学习是一个广泛的领域,涵盖了从数据预处理、模型构建、训练到评估的各个方面。本文将介绍机器学习的基础,包括如何处理数据集、理解数据类型和一些基本的统计学知识。这些知识是进行机器学习项目的基础。

1. 数据集

数据集是进行机器学习的基础。通常,数据集分为训练集和测试集,用于训练模型和评估模型性能。

示例数据集

我们将使用一个示例数据集,它包含一些简单的房价数据。以下是一个示例数据集的结构:

房屋面积(平方英尺) 房屋价格(美元)
1500 300000
1700 350000
2100 400000
2200 420000
2500 450000

2. 数据类型

在进行机器学习时,理解数据的类型非常重要。常见的数据类型包括:

  • 数值型数据:例如房屋面积、价格。这些数据可以进一步分为整数和浮点数。
  • 分类数据:例如房屋的类型(公寓、别墅)。这些数据是离散的,有有限的几种可能取值。
  • 时间序列数据:例如房价随时间的变化。数据点按照时间顺序排列。

3. 数据预处理

数据预处理是机器学习中的重要步骤,包括数据清洗、数据转换和数据缩放等。

数据清洗

数据清洗涉及处理缺失值和异常值。

import pandas as pd
import numpy as np

# 创建示例数据集
data = {
    '房屋面积': [1500, 1700, 2100, 2200, np.nan, 2500],
    '房屋价格': [300000, 350000, 400000, 420000, 450000, np.nan]
}

df = pd.DataFrame(data)

# 处理缺失值
df = df.dropna()  # 删除包含缺失值的行
# df = df.fillna(df.mean())  # 用平均值填充缺失值

print(df)

数据转换

有时需要将分类数据转换为数值数据。例如:

data = {
    '房屋类型': ['公寓', '别墅', '公寓', '别墅'],
    '房屋面积': [1500, 1700, 2100, 2200]
}

df = pd.DataFrame(data)

# 将分类数据转换为数值数据
df['房屋类型'] = df['房屋类型'].map({'公寓': 0, '别墅': 1})
print(df)

数据缩放

数据缩放是将特征的值缩放到一个特定的范围,例如 [0, 1] 或标准化为均值为 0、标准差为 1 的分布。

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
scaled_data = scaler.fit_transform(df[['房屋面积']])
df['房屋面积_标准化'] = scaled_data
print(df)

4. 基本统计学

在进行数据分析时,一些基本的统计学概念和方法非常有用。

均值和标准差

mean = df['房屋价格'].mean()
std_dev = df['房屋价格'].std()

print(f'均值: {mean}, 标准差: {std_dev}')

中位数和分位数

median = df['房屋价格'].median()
quantiles = df['房屋价格'].quantile([0.25, 0.5, 0.75])

print(f'中位数: {median}')
print(f'分位数: {quantiles}')

相关性

相关性用于衡量两个变量之间的关系。

correlation = df.corr()

print(f'相关性矩阵:\n{correlation}')

5. 简单的线性回归示例

使用 scikit-learn 库进行一个简单的线性回归示例:

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# 示例数据
data = {
    '房屋面积': [1500, 1700, 2100, 2200, 2500],
    '房屋价格': [300000, 350000, 400000, 420000, 450000]
}

df = pd.DataFrame(data)

# 特征和目标变量
X = df[['房屋面积']]
y = df['房屋价格']

# 拆分数据集
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)

# 预测
predictions = model.predict(X_test)

print(f'预测值: {predictions}')
print(f'实际值: {y_test.values}')

结论

本文介绍了 Python 机器学习的基础,包括如何处理数据集、理解数据类型、进行数据预处理,以及一些基本的统计学概念。通过这些知识,你可以开始进行简单的机器学习项目,并逐步深入到更复杂的模型和算法。


原文链接:codingdict.net