数据分析是当今社会不可或缺的技能之一,无论是企业决策、市场分析还是科学研究,都需要数据分析的支持。对于初学者来说,通过实战习题来学习和掌握数据挖掘技巧是非常有效的方法。以下是50个实战习题,帮助你轻松入门数据分析。
实战习题一:数据清洗
任务描述: 读取一个包含缺失值、异常值和重复数据的数据集,对其进行清洗。
示例:
import pandas as pd
# 假设有一个名为data.csv的文件
data = pd.read_csv('data.csv')
# 清洗数据
# 删除缺失值
clean_data = data.dropna()
# 删除异常值
clean_data = clean_data[(clean_data['age'] > 18) & (clean_data['age'] < 70)]
# 删除重复数据
clean_data = clean_data.drop_duplicates()
实战习题二:数据探索
任务描述: 对清洗后的数据进行初步探索,包括描述性统计、可视化等。
示例:
# 描述性统计
print(clean_data.describe())
# 可视化
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.hist(clean_data['age'], bins=10)
plt.title('Age Distribution')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()
实战习题三:数据预处理
任务描述: 对数据进行预处理,包括数据转换、编码等。
示例:
# 数据转换
clean_data['age_group'] = pd.cut(clean_data['age'], bins=[18, 30, 50, 70], labels=['Young', 'Middle-aged', 'Old'])
# 编码
clean_data = pd.get_dummies(clean_data, columns=['gender', 'education'])
实战习题四:线性回归
任务描述: 使用线性回归模型预测一个连续变量。
示例:
from sklearn.linear_model import LinearRegression
# 分离特征和标签
X = clean_data[['age_group', 'education']]
y = clean_data['salary']
# 创建模型
model = LinearRegression()
# 训练模型
model.fit(X, y)
# 预测
predicted_salary = model.predict([[1, 1]])
print(predicted_salary)
实战习题五:决策树
任务描述: 使用决策树模型对分类问题进行预测。
示例:
from sklearn.tree import DecisionTreeClassifier
# 分离特征和标签
X = clean_data[['age_group', 'education']]
y = clean_data['employed']
# 创建模型
model = DecisionTreeClassifier()
# 训练模型
model.fit(X, y)
# 预测
predicted_employed = model.predict([[1, 1]])
print(predicted_employed)
实战习题六:聚类分析
任务描述: 使用K-means聚类算法对数据进行聚类。
示例:
from sklearn.cluster import KMeans
# 分离特征
X = clean_data[['age_group', 'education']]
# 创建模型
model = KMeans(n_clusters=3)
# 训练模型
model.fit(X)
# 聚类
labels = model.predict(X)
print(labels)
实战习题七:关联规则挖掘
任务描述: 使用Apriori算法挖掘数据中的关联规则。
示例:
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
# 假设有一个名为transactions.csv的文件
transactions = pd.read_csv('transactions.csv')
# 创建关联规则
rules = apriori(transactions, min_support=0.5, min_confidence=0.7)
# 获取关联规则
rules = association_rules(rules, metric="lift", min_threshold=1)
print(rules)
实战习题八:文本分析
任务描述: 对文本数据进行预处理和分析。
示例:
import jieba
# 假设有一个名为text.csv的文件
text_data = pd.read_csv('text.csv')
# 分词
words = jieba.cut(text_data['content'], cut_all=False)
# 计算词频
word_counts = pd.Series(words).value_counts()
print(word_counts)
实战习题九:时间序列分析
任务描述: 使用时间序列模型对数据进行预测。
示例:
from statsmodels.tsa.arima_model import ARIMA
# 假设有一个名为sales.csv的文件
sales_data = pd.read_csv('sales.csv')
# 创建模型
model = ARIMA(sales_data['sales'], order=(5, 1, 0))
# 训练模型
model_fit = model.fit()
# 预测
predicted_sales = model_fit.forecast(steps=3)
print(predicted_sales)
实战习题十:神经网络
任务描述: 使用神经网络模型进行分类。
示例:
from keras.models import Sequential
from keras.layers import Dense
# 假设有一个名为data.csv的文件
data = pd.read_csv('data.csv')
# 分离特征和标签
X = data.drop('target', axis=1)
y = data['target']
# 创建模型
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(X.shape[1],)))
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(X, y, epochs=10, batch_size=32)
以上是50个实战习题,涵盖了数据清洗、数据探索、数据预处理、线性回归、决策树、聚类分析、关联规则挖掘、文本分析、时间序列分析和神经网络等多个方面。通过这些习题,你可以轻松掌握数据挖掘技巧,为未来的数据分析工作打下坚实的基础。
