# 深入Sklearn预处理技术：数据清洗与标准化实战

#### 1. 数据清洗：去除杂质，保留精华

from sklearn.impute import SimpleImputer

# 假设df是我们的DataFrame，'Age'列包含缺失值
imputer = SimpleImputer(strategy='mean') # 使用均值填充
df['Age'] = imputer.fit_transform(df[['Age']])


from scipy import stats

# 假设df['Age']是我们需要处理的列
z_scores = stats.zscore(df['Age'])
abs_z_scores = np.abs(z_scores)
filtered_entries = (abs_z_scores < 3).all(axis=1)
df = df[filtered_entries]


#### 2. 数据标准化：为模型铺平道路

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
df_scaled = scaler.fit_transform(df[['Age', 'Income', 'Education']])


from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
df_standardized = scaler.fit_transform(df[['Age', 'Income']])


RobustScaler：对异常值不敏感

from sklearn.preprocessing import RobustScaler

scaler = RobustScaler()
df_robust_scaled = scaler.fit_transform(df[['Age', 'Income']])


#### 实战案例：信用评分预测

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 加载数据

# 数据清洗
imputer = SimpleImputer(strategy='median')
credit_data[['Age', 'Annual_Income', 'Years_in_job']] = imputer.fit_transform(credit_data[['Age', 'Annual_Income', 'Years_in_job']])

# 异常值处理（这里简化处理，实际应更细致分析）
credit_data = credit_data[(credit_data['Annual_Income'] > credit_data['Annual_Income'].quantile(0.01)) &
(credit_data['Annual_Income'] < credit_data['Annual_Income'].quantile(0.99))]

# 特征选择
features = ['Age', 'Annual_Income', 'Years_in_job']
X = credit_data[features]
y = credit_data['Credit_Rating']

# 数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

# 训练模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测并评估
predictions = model.predict(X_test)
print("Accuracy:", accuracy_score(y_test, predictions))


|
25天前
|

【7月更文挑战第14天】在数据科学中，Pandas和NumPy是数据处理的关键，用于清洗、转换和计算。用pip install pandas numpy安装后，Pandas的read_csv读取数据，fillna处理缺失值，drop删除列。Pandas的apply、groupby和merge执行复杂转换。NumPy加速数值计算，如square进行向量化操作，dot做矩阵乘法。结合两者优化数据预处理，提升模型训练效率和效果。
25 1
|
2月前
|

57 3
|
26天前
|

25 0
|
3月前
|

scikit-learn中的数据预处理：从清洗到转换
【4月更文挑战第17天】在机器学习中，scikit-learn是用于数据预处理的强大Python库，涵盖数据清洗和转换。数据清洗涉及处理缺失值（如使用SimpleImputer和IterativeImputer填充）和异常值，以及分类数据的编码（如标签编码和独热编码）。数据转换包括特征缩放（如StandardScaler和MinMaxScaler）和特征选择（过滤、包装和嵌入方法）。这些工具能提升数据质量，优化模型性能，但需根据具体问题选择合适方法。
59 0
|
3月前
|

81 6
|
3月前
|

116 3
|
3月前
|

44 0
|

Python机器学习数据建模与分析——Numpy和Pandas综合应用案例：空气质量监测数据的预处理和基本分析

612 0
|

105 0
|

497 0