做电影网站如何盈利,wordpress 显示指定分类文章列表,牛牛襄阳网站建设,中国纪检监察报社级别目录 一、数据预处理#xff1a;
1. 缺失值处理#xff1a;
2. 重复值处理#xff1a;
3. 数据类型#xff1a;
二、特征工程:
1. 规范化#xff1a;
2. 归一化#xff1a;
3. 标准化(方差)#xff1a;
三、训练模型#xff1a;
如何计算精确度#xff0c;召…目录 一、数据预处理
1. 缺失值处理
2. 重复值处理
3. 数据类型
二、特征工程:
1. 规范化
2. 归一化
3. 标准化(方差)
三、训练模型
如何计算精确度召回、F1分数 一、数据预处理
1. 缺失值处理
在数据中存在缺失值的情况下可以采用删除缺失值、均值填充、中位数填充、插值法等方式进行缺失值处理。
import pandas as pd
import numpy as np# 创建DataFrame包含缺失值
df pd.DataFrame({A: [1, 2, np.nan, 4, 5], B: [6, np.nan, 8, np.nan, 10]})
print(df)# 删除缺失值
df.dropna(inplaceTrue)
print(df)# 均值填充
df.fillna(df.mean(), inplaceTrue)
print(df)# 中位数填充
df.fillna(df.median(), inplaceTrue)
print(df)# 插值法填充
df.interpolate(inplaceTrue)
print(df)
2. 重复值处理
在数据中存在重复值的情况下可以采用删除重复值、保留重复值、统计重复值等方式进行重复值处理。
import pandas as pd
import numpy as np# 创建DataFrame包含重复值
df pd.DataFrame({A: [1, 2, 2, 4, 5], B: [6, 6, 8, 8, 10]})
print(df)# 删除重复值
df.drop_duplicates(inplaceTrue)
print(df)# 保留重复值
df[df.duplicated(keepFalse)]
print(df)# 统计重复值
df.duplicated()
print(df.duplicated().sum()) 3. 数据类型
在数据中存在不同数据类型的情况下可以采用转换数据类型、或者删除对模型影响不大的数据类型等方式进行数据类型处理。
import pandas as pd# 创建DataFrame包含不同数据类型
df pd.DataFrame({A: [1, 2, 3], B: [4, 5, 6]})
print(df)# 转换数据类型
df[B] df[B].astype(int)
print(df)# 删除对模型影响不大的数据类型
df.drop(columnsB, inplaceTrue)
print(df) 二、特征工程:
1. 规范化
规范化的目的是将特征的值域缩小到[0,1]之间以消除各特征值域不同的影响并提高模型的精度。
1.one-hot编码
情况一 . 一个特征中两个不同的特征值(one-hot编码)
import pandas as pd
#情况一 一个特征中两个不同的特征值(one-hot编码)1 male
0 femaledf1 pd.DataFrame({Gender: [female,male, female,female, male,male]})
df1[Gender].replace({female:1,male:0}) 情况二 一个特征中有多个不同的特征值(标签编码一般1对应标签占位)
import pandas as pd#情况二 一个特征中有多个不同的特征值(标签编码一般1对应标签占位)# 创建DataFrame包含需要规范化的特征
df2 pd.DataFrame({A: [one,one, three,twe, one,three]})#使用标签编码来规范化 分析有三个不同值(将值1作为特征占位)
one twe three
1 0 0
0 1 0
0 0 1# 将值替换
df2df2.replace({one:100,twe:010,three:001}).astype(category)df2 2. 归一化
归一化与规范化类似也是将特征的值域缩小到[0,1]之间但与规范化不同的是归一化是对整个数据集的缩放而规范化是对单个特征的缩放。示例代码
import pandas as pd# 创建DataFrame包含需要归一化的特征
df pd.DataFrame({A: [1, 2, 3], B: [4, 5, 6]})
print(df)# 将值转换为 0-1值,增加相似度
# 公式 :(x-min)/(max-min)df[A](df[A]-df[A].min())/(df[A].max()-df[A].min())
df[B](df[B]-df[B].min())/(df[B].max()-df[B].min())
df
3. 标准化(方差)
标准化是将特征值转换为标准正态分布使得特征值的均值为0标准差为1以消除特征值之间的量纲影响并提高模型的精度。
数据转化到均值为0方差为1的范围内方差和标准差越趋近于0则表示数据越集中如果越大表示数据越离散。
使用sklearn.preprocession import StandardScaler
import pandas as pd
from sklearn.preprocessing import StandardScaler
# 创建DataFrame包含需要标准化的特征
df pd.DataFrame({A: [1, 2, 3], B: [4, 5, 6]})
print(df)# 使用StandardScaler标准化特征
scaler StandardScaler()
df_norm pd.DataFrame(scaler.fit_transform(df), columnsdf.columns)
print(df_norm)
三、训练模型
在对数据进行预处理和特征工程之后就可以训练模型了。在这里我们以xgboost模型为例进行训练。
示例代码 # 这行代码是从sklearn.model_selection库中导入train_test_split函数该函数用于将数据集分割为训练集和测试集。
from sklearn.model_selection import train_test_split# 这行代码将您的主数据集特征和目标变量标签分割为训练集和测试集。test_size0.33表示测试集占总数据的33%random_state7用于每次分割都产生相同的数据分布确保结果的可重复性。
X_train, X_test, y_train, y_test train_test_split(df_train, df_y, test_size0.33, random_state7)# 这行代码从xgboost库中导入XGBClassifier类。这是一个实现了梯度提升决策树算法的分类器。
from xgboost import XGBClassifier# 创建XGBClassifier的一个实例。这里没有指定任何参数所以模型会使用默认参数。
model XGBClassifier()# eval_set是一个列表其中包含将用于评估模型性能的测试数据集。这对于早期停止是必要的以防止过拟合。
eval_set [(X_test, y_test)]# 这行代码训练模型。early_stopping_rounds10表示如果在10轮迭代中性能没有提升训练将停止。eval_metriclogloss设置了评估标准。eval_set是我们之前设置的测试数据verboseTrue表示在训练时显示日志。
model.fit(X_train, y_train, early_stopping_rounds10, eval_metriclogloss, eval_seteval_set, verboseTrue)# 使用训练好的模型对测试集进行预测。
y_pred model.predict(X_test)# 这行代码被注释掉了如果使用它将执行以下操作这行代码通过四舍五入预测值因为梯度提升生成的是概率来创建一个新的预测列表。
# predictions [round(value) for value in y_pred]# 以下两行代码被注释掉了如果使用它们将执行以下操作计算模型的准确度即预测正确的比例。
# accuracy accuracy_score(y_test, predictions)
# print(accuracy)# 从sklearn.metrics导入f1_score函数。
from sklearn.metrics import f1_score# 计算F1得分这是准确率和召回率的加权平均值通常用于评估分类模型的性能尤其是在不平衡数据集中。
f1 f1_score(y_test, y_pred)# 打印F1得分。
print(f1)如何计算精确度召回、F1分数
from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score# 真实标签和模型预测结果
y_true [0, 1, 1, 0, 1]
y_pred [0, 1, 0, 0, 1]# 计算混淆矩阵
conf_matrix confusion_matrix(y_true, y_pred)
TP, FP, TN, FN conf_matrix.ravel()# 计算精确度、召回率和F1分数
precision precision_score(y_true, y_pred)
recall recall_score(y_true, y_pred)
f1 f1_score(y_true, y_pred)print(Precision:, precision)
print(Recall:, recall)
print(F1 Score:, f1)