当前位置: 首页> 游戏> 手游 > 北京的建筑公司有哪些_如何查看网站权重_电商网络推广_微信搜一搜怎么做推广

北京的建筑公司有哪些_如何查看网站权重_电商网络推广_微信搜一搜怎么做推广

时间:2025/7/10 13:51:55来源:https://blog.csdn.net/weixin_43298211/article/details/142604338 浏览次数:0次
北京的建筑公司有哪些_如何查看网站权重_电商网络推广_微信搜一搜怎么做推广

    特征工程和特征选择是机器学习流程中至关重要的环节,直接影响到模型的性能。特征工程涉及从原始数据中提取或构造有用的特征,而特征选择则是从已有的特征集中挑选出最相关的子集。

特征工程

特征工程是指创建能够使机器学习算法更好地理解数据的新特征的过程。这包括处理缺失值、编码分类变量、标准化数值特征等。

示例:特征工程在泰坦尼克号生存预测中的应用

假设一个泰坦尼克号乘客的数据集目标是预测哪些乘客可能幸存。

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score# 加载数据
data = pd.read_csv('titanic.csv')# 数据预处理
def preprocess_data(df):# 填充缺失值df['Age'].fillna(df['Age'].median(), inplace=True)df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)# 创建新特征df['FamilySize'] = df['SibSp'] + df['Parch'] + 1df['IsAlone'] = 1  # 初始化为1df.loc[df['FamilySize'] > 1, 'IsAlone'] = 0return df# 处理数据
data = preprocess_data(data)# 定义特征和标签
features = ['Pclass', 'Sex', 'Age', 'Fare', 'Embarked', 'FamilySize', 'IsAlone']
X = data[features]
y = data['Survived']# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 特征转换
preprocessor = ColumnTransformer(transformers=[('num', StandardScaler(), ['Age', 'Fare', 'FamilySize']),('cat', OneHotEncoder(), ['Pclass', 'Sex', 'Embarked', 'IsAlone'])])# 创建管道
pipeline = Pipeline(steps=[('preprocessor', preprocessor),('classifier', RandomForestClassifier(random_state=42))
])# 训练模型
pipeline.fit(X_train, y_train)# 预测
predictions = pipeline.predict(X_test)# 评估模型
print("Accuracy:", accuracy_score(y_test, predictions))

 

  • 数据加载

    • 使用pandas读取CSV文件。
  • 数据预处理

    • preprocess_data函数用于填充缺失值,并创建新的特征FamilySize(家庭大小)和IsAlone(是否独自一人)。
  • 特征和标签定义

    • 选择相关特征并分离标签。
  • 数据划分

    • 将数据划分为训练集和测试集。
  • 特征转换

    • 使用ColumnTransformer对数值特征进行标准化,对分类特征进行独热编码。
  • 创建管道

    • 使用Pipeline将特征转换和分类器组合在一起,简化了模型训练过程。
  • 训练和评估

    • 训练随机森林分类器并评估其在测试集上的准确率。
特征选择

   特征选择是从现有特征集中挑选出最相关于目标变量的子集的过程。常用的方法包括基于统计测试的选择方法、递归特征消除(RFE)等。

示例:使用递归特征消除(RFE)进行特征选择

继续使用泰坦尼克号数据集,将使用RFE来选择最重要的特征。

from sklearn.feature_selection import RFE# 使用RFE进行特征选择
selector = RFE(estimator=RandomForestClassifier(random_state=42), n_features_to_select=5, step=1)
selector = selector.fit(X_train, y_train)# 获取所选特征
selected_features = X_train.columns[selector.support_]
print("Selected Features:", selected_features)# 使用选定的特征重新训练模型
X_train_selected = X_train[selected_features]
X_test_selected = X_test[selected_features]# 重新创建管道
pipeline = Pipeline(steps=[('preprocessor', preprocessor),('classifier', RandomForestClassifier(random_state=42))
])# 训练模型
pipeline.fit(X_train_selected, y_train)# 预测
predictions = pipeline.predict(X_test_selected)# 评估模型
print("Accuracy with Selected Features:", accuracy_score(y_test, predictions))
  • 特征选择

    • 使用RFE类进行递归特征消除,指定要选择的特征数量为5。
    • fit方法训练RFE模型,并返回选择的特征。
  • 获取所选特征

    • 通过selector.support_获取所选特征的索引,然后从原始特征列表中提取这些特征。
  • 重新训练模型

    • 使用选定的特征重新训练随机森林分类器,并评估其性能。

通过上述示例,可以看到特征工程和特征选择是如何帮助我们提高模型性能的。特征工程可以创建更有意义的特征,而特征选择可以帮助我们找到最相关的特征,从而简化模型并提高泛化能力。 

关键字:北京的建筑公司有哪些_如何查看网站权重_电商网络推广_微信搜一搜怎么做推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: