Pythonh服装行业的生产力挖掘代码
时间: 2024-12-11 10:13:13 浏览: 16
根据提供的《实验二 服装行业的生产力挖掘》文档,以下是一个基于Python的示例代码,用于完成该实验的各项要求。此代码将涵盖从数据加载到模型预测以及可视化的全过程:
### 1. 导入必要的库
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
```
### 2. 加载数据
```python
# 读取数据
data = pd.read_csv('worker_productivity.txt', sep='\t')
# 查看数据的前10行和后10行
print("Data Head:\n", data.head(10))
print("\nData Tail:\n", data.tail(10))
# 输出数据类型
print("\nData Types:\n", data.dtypes)
```
### 3. 数据清洗
#### 3.1 缺失值处理
```python
# 检查缺失值
print("\nMissing Values:\n", data.isnull().sum())
# 处理缺失值(例如,使用均值填充)
data.fillna(data.mean(), inplace=True)
# 再次检查缺失值
print("\nAfter Handling Missing Values:\n", data.isnull().sum())
```
#### 3.2 异常值处理
```python
# 定义一个函数来检测和处理异常值
def remove_outliers(df, column):
Q1 = df[column].quantile(0.25)
Q3 = df[column].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
return df[(df[column] >= lower_bound) & (df[column] <= upper_bound)]
# 对每个数值列处理异常值
for col in data.select_dtypes(include=[np.number]).columns:
data = remove_outliers(data, col)
```
### 4. 数据整理
#### 4.1 数据转换
```python
# 将数据集转换为适合建模的格式
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
# 标准化数据
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
```
#### 4.2 数据集分割
```python
# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.33, random_state=42)
```
### 5. 数据分析
#### 5.1 探索性数据分析
```python
# 绘制各特征与实际生产力的关系图
plt.figure(figsize=(15, 10))
for i, feature in enumerate(X.columns):
plt.subplot(3, 2, i+1)
plt.scatter(data[feature], data['actual_productivity'], alpha=0.5)
plt.title(f'{feature} vs Actual Productivity')
plt.xlabel(feature)
plt.ylabel('Actual Productivity')
plt.tight_layout()
plt.show()
```
#### 5.2 描述性数据分析
```python
# 输出描述性统计信息
print("\nDescriptive Statistics:\n", data.describe())
```
### 6. 回归预测分析
#### 6.1 回归预测
```python
# 创建线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
```
#### 6.2 分析模型可靠性
```python
# 计算R²分数
r2 = r2_score(y_test, y_pred)
print(f"R² Score: {r2}")
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print(f"Mean Squared Error: {mse}")
```
#### 6.3 误差分析
```python
# 绘制残差图
residuals = y_test - y_pred
plt.scatter(y_pred, residuals)
plt.axhline(y=0, color='red', linestyle='--')
plt.xlabel('Predicted Productivity')
plt.ylabel('Residuals')
plt.title('Residual Plot')
plt.show()
```
#### 6.4 模型参数检验
```python
# 输出模型系数
coefficients = model.coef_
intercept = model.intercept_
print(f"Coefficients: {coefficients}")
print(f"Intercept: {intercept}")
```
#### 6.5 报告回归结果
```python
# 打印回归结果
print("\nRegression Results:")
print(f"R² Score: {r2}")
print(f"Mean Squared Error: {mse}")
print(f"Coefficients: {coefficients}")
print(f"Intercept: {intercept}")
```
### 7. 数据可视化
#### 7.1 生成表格
```python
# 生成二维表格
table_2d = pd.DataFrame({'Actual Productivity': y_test, 'Predicted Productivity': y_pred})
print(table_2d.head())
# 生成三维表格
table_3d = pd.concat([pd.DataFrame(X_test), table_2d], axis=1)
print(table_3d.head())
```
#### 7.2 生成图形
```python
# 生成柱状图
plt.bar(X.columns, coefficients)
plt.xlabel('Features')
plt.ylabel('Coefficients')
plt.title('Feature Importance')
plt.xticks(rotation=45)
plt.show()
# 生成条形图
plt.bar(['Actual', 'Predicted'], [y_test.mean(), y_pred.mean()])
plt.xlabel('Type')
plt.ylabel('Productivity')
plt.title('Average Productivity Comparison')
plt.show()
# 生成饼图
productivity_counts = data['actual_productivity'].value_counts()
plt.pie(productivity_counts, labels=productivity_counts.index, autopct='%1.1f%%')
plt.title('Distribution of Actual Productivity')
plt.show()
```
### 8. 总结
通过上述步骤,我们完成了对服装行业生产力数据的加载、清洗、整理、分析、预测和可视化。这些步骤帮助我们更好地理解和预测服装生产团队的实际生产力。
阅读全文