从34维数据中选取两个最重要的特征python代码
import pandas as pd
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
读取数据集
data = pd.read_csv("data.csv")
特征和标签赋值
X = data.iloc[:, 0:34] #特征矩阵X,取前34列特征数据
y = data["target"] #标签向量y,取最后一列target数据
# 选择K个最佳特征(其中K=2)
bestfeatures = SelectKBest(score_func=chi2, k=2)
# 计算k个最佳特征的分数并将其存储在fit()函数中。 (即计算出每一个特征的卡方值) fit()函数将评估所选的k个最佳功能以进行预测。 在此之后,它将仅选择前k个功能作为新的功能子集。 否则就不适用于新的子集。 标志“true”意味着该函数应用于新子集中 false意味着不应用于新子集中。 本例中我们将使用true fit()函数会返回一个scores属性来存储打分情况 标志“true”意味着该函數適用於新子集 false意味著不適用於新子集 本例中我哑使用true fit()函式會返回一個scores屬性來存儲打分情況 bestfeatures.fit(X, y) print(bestfeatures.scores_) featureScores = pd.DataFrame({'Feature': list(X), 'Score': bestfeatures.scores_}) featureScores = featureScores.sort_values(by='Score', ascending=False).reset_index().head(n=2) print('Two most important features are: ',featureScores'Feature',',',featureScores'Feature')
Prev:商人有应该得到尊重,世界再发展