数据结构
代码实现
#逻辑回归代码实现
#【1】导入资源包
from sklearn.linear_model import LogisticRegression
import pandas as pd
#【2】加载样本数据
df0 = pd.read_excel('股票客户流失.xlsx')
print(df0.head())
x = df0.drop(columns='是否流失')
# x = df0[['账户资金(元)','最后一次交易距今时间(天)','上月交易佣金(元)','累计交易佣金(元)',
# '本券商使用时长(年)']]
y = df0['是否流失']
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2,random_state=1)
#【3】构建逻辑回归模型
lr = LogisticRegression()
#【4】模型训练
lr.fit(x_train,y_train)
#【5】模型预测
y_pred = lr.predict(x_test)
print(y_pred)
#拓展
#【6】输出概率值
y_pred_proba = lr.predict_proba(x_test)
print(y_pred_proba[:5])
df = pd.DataFrame(y_pred_proba,columns=['分类为0的概率','分类为1的概率'])
print(df.head())
#【7】输出回归系数
print('回归系数:',str(lr.coef_))
print('截距:',str(lr.intercept_))
#【8】准确度的预测
from sklearn.metrics import accuracy_score
score = accuracy_score(y_test,y_pred)
print('score:',str(score))
#第二种准确度计算方式
score1 = lr.score(x_test,y_test)
print('score1:',str(score))
#显示对比实际值和预测值
df1 = pd.DataFrame()
df1['实际值'] = y_test
df1['预测值'] = y_pred
print(df1.head())
核心知识