df_new = df.drop(columns=["姓名", "位置","球队"]) # 去除非数值型数据 X_train,X_test,Y_train,Y_test=train_test_split(df_new,Pie1_array,test_size=0.2,random_state=180) # 定义模型 def basic_logosticregression(X_train, X_test, Y_train, Y_test): model = LogisticRegression(random_state=0, solver='lbfgs') model.fit(X_train, Y_train) Y_train_pre = model.predict(X_train) Y_test_pre = model.predict(X_test) train_predict_proba = model.predict_proba(X_train) test_predict_proba = model.predict_proba(X_test) confusion_matrix_result = metrics.confusion_matrix(Y_test_pre, Y_test) print('混淆矩阵结果:\n', confusion_matrix_result) plt.figure(figsize=(8, 6)) sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues') # plt.xlabel('预测的标签') # plt.ylabel('实际的标签') print("逻辑回归") print("score_train: " + str(model.score(X_train, Y_train))) print("score_test: " + str(model.score(X_test, Y_test))) basic_logosticregression(X_train,X_test,Y_train,Y_test) Pie_array = np.array(df['球员贡献度']) df_new = df.drop(columns=["姓名", "位置","球队",'球员贡献度']) data=df_new.values.tolist()
时间: 2023-12-24 07:12:57 浏览: 28
这段代码中,首先使用 `df.drop` 方法去掉了数据框 `df` 中的非数值型数据,然后使用 `train_test_split` 方法将数据集划分为训练集和测试集。接下来定义了一个逻辑回归模型 `basic_logosticregression`,并在其中使用 `LogisticRegression` 方法进行训练和预测。最后,将球员贡献度从数据框中提取出来,再次使用 `df.drop` 方法去掉非数值型数据,并将数据转换为列表。
需要注意的是,这段代码中并没有显示 `Pie1_array` 的定义,因此无法确定该变量的含义和类型,难以对代码进行更深入的分析。同时,该代码中的逻辑回归模型没有进行参数调优,可能会影响模型的性能。如果需要对模型进行更深入的分析和优化,可以参考一些相关的教程或者进行自行探索。
相关问题
#根据编程要求,补充下面Begin-End区间的代码 import numpy as np import pandas as pd import numpy as np import pandas as pd from sklearn.tree import DecisionTreeClassifier, export_graphviz # 导入决策树模型 from sklearn.model_selection import train_test_split # 导入数据集划分模块 import matplotlib.pyplot as plt from sklearn.metrics import roc_auc_score from sklearn.metrics import classification_report # 数据的读入与处理 data_path ='/data/bigfiles/7db918ff-d514-49ea-8f6b-ea968df742e9' df = pd.read_csv(data_path,header=None,names=['age', 'workclass', 'fnlwgt', 'education', 'education-num','marital-status','occupation','relationship','race','sex','capital-gain','capital-loss','hours-per-week','native-country','salary']) ######Begin ###### # 去除字符串数值前面的空格 # 去除fnlwgt, capital-gain, capital-loss,特征属性 # 将特征采用哑变量进行编码,字符型特征经过转化可以进行训练 # 将label编码 ###### End ###### ######Begin ###### # 按4:1的比例划分训练和测试集 # 构建模型 #对训练集X_train训练 #对于测试集x_test进行预测 # 其他指标计算 print(classification_report(y_test, x_pre_test)) # 预测测试集概率值 #计算验证集的auc值,参数为预测值和概率估计 ###### End ###### print("auc的值:{}".format(auc))
######Begin ######
# 去除字符串数值前面的空格
df_obj = df.select_dtypes(['object'])
df[df_obj.columns] = df_obj.apply(lambda x: x.str.strip())
# 去除fnlwgt, capital-gain, capital-loss,特征属性
df = df.drop(['fnlwgt', 'capital-gain', 'capital-loss'], axis=1)
# 将特征采用哑变量进行编码,字符型特征经过转化可以进行训练
df = pd.get_dummies(df)
# 将label编码
df['salary'] = df['salary'].apply(lambda x: 1 if x == '>50K' else 0)
###### End ######
######Begin ######
# 按4:1的比例划分训练和测试集
X = df.drop(['salary'], axis=1)
y = df['salary']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 构建模型
dt = DecisionTreeClassifier(random_state=42)
# 对训练集X_train训练
dt.fit(X_train, y_train)
# 对于测试集x_test进行预测
x_pre_test = dt.predict(X_test)
# 其他指标计算
print(classification_report(y_test, x_pre_test))
# 预测测试集概率值
y_score = dt.predict_proba(X_test)[:, 1]
# 计算验证集的auc值,参数为预测值和概率估计
auc = roc_auc_score(y_test, y_score)
###### End ######
print("auc的值:{}".format(auc))
使用Python对Excel表格进行以下数据预处理1.数值型特征列异常点检测和处理 2.定量特征二值化 3.删除特征数据集中无用的那些特征(一般都是字符型数据:人工特征选择) 4.将源文件的特征数据和目标数据分离成两个数据文件 5.将数据分为测试集和训练集(利用sklearn中的函数) 6.利用pandas标准化数据
以下是对Excel表格进行一些常见数据预处理操作的示例代码:
1. 数值型特征列异常点检测和处理
``` python
import pandas as pd
import numpy as np
from scipy import stats
df = pd.read_excel('example.xlsx')
# 对数值型特征列进行异常点检测和处理
for column in df.select_dtypes(include=[np.number]).columns:
z = np.abs(stats.zscore(df[column]))
df = df[(z < 3)]
```
2. 定量特征二值化
``` python
from sklearn.preprocessing import Binarizer
df = pd.read_excel('example.xlsx')
# 对指定列进行二值化
binarizer = Binarizer(threshold=2.5)
df['Column1'] = binarizer.transform(df[['Column1']])
```
3. 删除特征数据集中无用的那些特征
``` python
df = pd.read_excel('example.xlsx')
# 删除指定列
df.drop(['Column1', 'Column2'], axis=1, inplace=True)
```
4. 将源文件的特征数据和目标数据分离成两个数据文件
``` python
df = pd.read_excel('example.xlsx')
# 分离特征数据和目标数据
X = df.drop('target', axis=1)
y = df['target']
# 保存特征数据和目标数据到不同的文件
X.to_excel('features.xlsx', index=False)
y.to_excel('target.xlsx', index=False)
```
5. 将数据分为测试集和训练集
``` python
from sklearn.model_selection import train_test_split
X = pd.read_excel('features.xlsx')
y = pd.read_excel('target.xlsx')
# 将数据分为测试集和训练集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
6. 利用pandas标准化数据
``` python
from sklearn.preprocessing import StandardScaler
X_train = pd.read_excel('X_train.xlsx')
X_test = pd.read_excel('X_test.xlsx')
# 对训练集和测试集进行标准化处理
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 将标准化后的数据保存到新的Excel文件中
pd.DataFrame(X_train_scaled).to_excel('X_train_scaled.xlsx', index=False)
pd.DataFrame(X_test_scaled).to_excel('X_test_scaled.xlsx', index=False)
```
以上是一些常见的数据预处理操作,你可以根据实际需求进行修改和添加。