recently

最近的生活

 

从大一的时候我就有一个日记本,每当想起来我就会在上面记录一下一段时间的生活。我很喜欢这种记录的感觉,其实我更喜欢的是将来某一天拿起它回顾的感觉,看看当时的自己多2b,感受自己的成长。

 

几乎每次拿起来看我都会觉得当初的自己2b,一段时间这让我很郁闷,让我做事很缩手缩脚,因为我不知道我要怎么做才能不让以后的自己觉得2b。思考的结果是我无法得出这个问题的解,因为在这个过程中我的价值观在变,除非我能参透我未来的价值观变化趋势,否则我是不可能迎合未来的自己的,但一旦我参透了,那就变成了我如今的价值观,未来的价值观还是会在此基础上变化的。所以大胆地2b吧,每当发现原来的自己2b的时候,都说明自己进步了,这个过程可能是螺旋式的,可能是否定加否定的,但总比停滞不前好吧。

 

有句话说得好啊,“男性改变世界,女性改变男性的世界观”,如今我就对这句话体会的很深。男人的成功终究还是要在他的女人身上体现的,他在外面拼这拼那无非是想得到女人的认同,无非是一种证明和炫耀的心理,而女性的价值观决定了男性在哪些方面的表现能达到这种效果。你要成为什么样的人,无非是成为会被你爱的人爱上的人。这是自身价值实现的终极表现——得到你最想得到的认可。

 

生活就怕一个“比”字,一把比较扯进来,事情就两极化了,你想抱怨,比你郁闷的人还没抱怨呢,你想哭诉,比你不爽的人还没哭诉呢,是不是只有比所有不抱怨的人都郁闷才能抱怨?是不是只有比所有不哭诉的人都不爽才能哭诉?我一直有这个惶恐。男人嘛,就要对自己狠一点,虽然我非硬汉,但我一直尽量做出一副硬汉的样子,刚回顾了一下过去一年的校内状态,一条条状态让我想起了自己的一个个阶段,我竟然一年来都没有向外界展示自己的内心世界,我都藏住了。我也有倾吐的欲望,但是我在等,等我彻底把这件事情搞定,我得用另一个姿态告诉你们我的经历,我永远不能像个在博同情的可怜人儿,所以你知道我现在为什么还不回家,为什么这么烦躁,我是真的想快点做了这个手术啊!因为这一年来,不管我做什么,我总觉得我的头顶上有块黑云,不管我多高兴,我总感觉有个让人心烦的背景音——“钢板-钢板-”,钢你妹啊。我很在意的!

 

其实应该庆幸了,毕竟真正难熬的都熬过去了,我这个人奇怪,经历困难时觉得很艰难,但一旦挺过来了,就又会觉得很不值一提,好了伤疤忘了疼,倒不是说没有教训,只是当初的经历记忆会变得模糊。其实那半年身体上还是挺难熬的,而这一整年心理上也很难熬,但要让我细说我又说不出来,都过去了,过去的就让它过去吧。比如我刚才说“难熬”这个字眼的时候就不是很有底气,我又开始比较了——有人比你还难熬都没用这个词呢!你看我活得多累。

 

是该庆幸,因为没有任何不可恢复的损失,这是我的底线,否则我真的接受不了。还好我还能跑还能跳,还能打篮球,以前能做的那些事我以后都还能做。那还有什么好抱怨的呢。而且既然长远看来没有损失,那这经历就是财富了,所以你看我失恋了都没怎么当回事,腿都断过了,还能为这个难受吗。记得卧床那段时间看一个FML的专题,自然各种笑而不语。

 

这件事让我深有体会的另一句话是“世上没有后悔药”,以前听过无数次,但真没有如此深的体会。我长大之后就总爱问自己一个问题,“如果你可以回到一个时间点改变自己某时刻的某个做法,你会选什么?”,很长一段时间我对这个问题的回答是没有,因为我觉得我人生轨迹虽不算完美,但一切令我满意,我的梦想啊什么的就算还没实现,但一直没有失去实现他们的可能性,我还把握着自己的命运。高考落榜后的一段时间我第一次对这个问题有了答案,我想重新填报自己的志愿,不过后来来到大工,一切还不错,而且找到了自己喜欢学的东西,我又收回了那个答案,我想如果当时没落榜也许现在还学不到这个专业呢。后来这次出事后,我对这个问题的答案是希望那天过道的时候小心点,这样就不用受这些罪了。但是奇怪了,如今的我又想收回这个答案了,因为我发现它所带来的一切不过就是那么点罪嘛,我也都挺过来了,我什么都没失去,我要说我觉得这事利大于弊你们能不能觉得我是疯子?不过我有时候真的会这么想。。。嘘。。。我刚才说什么来着,只要没有不可恢复的损失,一旦挺过来了,我都会觉得之前的困难不算什么。

 

希望一切顺利。

 

to be continued

# 导入所需库(与文档一致) import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score import warnings warnings.filterwarnings('ignore') # ============================== # 任务1:数据准备(按文档变量名读取数据) # ============================== try: order_data = pd.read_csv('meal_order_info.csv', encoding='gbk') history_order = pd.read_csv('info_new.csv', encoding='gbk') user_info = pd.read_csv('users.csv', encoding='gbk') # 确保此变量被正确加载 user_loss = pd.read_csv('user_loss.csv', encoding='gbk') print("数据内容:") print(data.to_csv(sep='\t', na_rep='nan')) # 以制表符分隔打印数据 except Exception as e: print(f"发生错误: {e}") # 捕获并打印其他可能的异常 # ============================== # 任务2:统计每日用餐人数与销售额(文档要求状态为1) # ============================== def analyze_daily_sales(data): """统计有效订单(状态=1)的每日用餐人数与销售额""" valid_data = data[data['order_status'] == 1].copy() # 提取日期(假设日期格式为'YYYY-MM-DD HH:MM',截取前10位) valid_data['use_start_time'] = valid_data['use_start_time'].str[:10] daily_stats = valid_data.groupby('use_start_time').agg( daily_diners=('number_consumers', 'sum'), daily_sales=('expenditure', 'sum') ).reset_index() # 绘制折线图(符合文档要求) plt.figure(figsize=(12, 6)) plt.plot(daily_stats['use_start_time'], daily_stats['daily_diners'], label='每日用餐人数', marker='o') plt.plot(daily_stats['use_start_time'], daily_stats['daily_sales'], label='每日销售额', marker='s') plt.title('餐饮企业每日经营趋势', fontsize=14) plt.xlabel('日期', fontsize=12) plt.ylabel('数值', fontsize=12) plt.xticks(rotation=45) plt.legend() plt.grid(True) plt.show() return daily_stats # 调用函数(此时order_data已定义) daily_trends = analyze_daily_sales(order_data) # ============================== # 任务3:数据预处理(构建RFM与流失特征) # ============================== # ------------------------- # 客户价值分析:构建RFM特征(文档表中R/F/M定义) # ------------------------- def build_rfm(order_data, user_info, rfm_end='2016-08-31'): merged = pd.merge(user_info, order_data, on='USER_ID', how='left') valid_orders = merged[merged['order_status'] == 1].copy() rfm = valid_orders.groupby('USER_ID').agg({ 'use_start_time': lambda x: (pd.to_datetime(rfm_end) - x.max()).days, 'order_number': 'count', 'expenditure': 'sum' }).reset_index() rfm.columns = ['USER_ID', 'R', 'F', 'M'] rfm.fillna({'R': rfm['R'].max(), 'F': 0, 'M': 0}, inplace=True) return rfm # 执行RFM分析(此时user_info应已正确加载) rfm_data = build_rfm(order_data, user_info) # ------------------------- # 客户流失预测:构建流失特征(文档中4个指标) # ------------------------- def build_churn(user_loss_data, history_order_data, churn_end='2016-07-31'): churn_merged = pd.merge(user_loss_data, history_order_data, on='USER_ID', how='left') churn_merged['use_start_time'] = pd.to_datetime(churn_merged['use_start_time']) churn_features = churn_merged.groupby('USER_ID').agg({ 'order_number': 'count', # frequence 'use_start_time': lambda x: (pd.to_datetime(churn_end) - x.max()).days, # recently 'expenditure': ['sum', lambda x: x.sum()/x.count() if x.count()!=0 else 0] # amount, average }).reset_index() churn_features.columns = ['USER_ID', 'frequence', 'recently', 'amount', 'average'] # 标记流失客户(文档未明确阈值,设为最近天数>90天) churn_features['churn_status'] = np.where(churn_features['recently'] > 90, 1, 0) return churn_features churn_data = build_churn(user_loss, history_order) # ============================== # 任务4:K-Means聚类分析(文档聚类数=3) # ============================== scaler = StandardScaler() rfm_scaled = scaler.fit_transform(rfm_data[['R', 'F', 'M']]) kmeans = KMeans(n_clusters=3, random_state=42) rfm_data['cluster'] = kmeans.fit_predict(rfm_scaled) # 输出聚类中心(文档要求分析各群特征) cluster_centers = pd.DataFrame(scaler.inverse_transform(kmeans.cluster_centers_), columns=['R', 'F', 'M'], index=['客户群1', '客户群2', '客户群3']) print("客户群特征中心:\n", cluster_centers.round(2)) # ============================== # 任务5:雷达图可视化(文档要求用雷达图) # ============================== def plot_radar_chart(centers, features): n_clusters = centers.shape[0] angles = np.linspace(0, 2*np.pi, len(features), endpoint=False).tolist() angles += angles[:1] # 闭合图形 plt.figure(figsize=(8, 8)) for i in range(n_clusters): values = centers.iloc[i].tolist() + [centers.iloc[i, 0]] plt.plot(angles, values, label=f'客户群{i+1}') plt.fill(angles, values, alpha=0.2, edgecolor='black') plt.xticks(angles[:-1], features, fontsize=10) plt.title('客户价值聚类雷达图', fontsize=14) plt.legend(loc='upper right') plt.grid(True, linestyle='--', alpha=0.7) plt.show() plot_radar_chart(cluster_centers, ['最近消费天数(R)', '消费次数(F)', '消费金额(M)']) # ============================== # 任务6:决策树模型(文档使用CART算法) # ============================== X = churn_data[['frequence', 'recently', 'average', 'amount']] y = churn_data['churn_status'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) cart_model = DecisionTreeClassifier(criterion='gini', max_depth=3, random_state=42) cart_model.fit(X_train, y_train) # ============================== # 任务7:模型评价(文档要求混淆矩阵) # ============================== y_pred = cart_model.predict(X_test) cm = confusion_matrix(y_test, y_pred) precision = precision_score(y_test, y_pred) recall = recall_score(y_test, y_pred) f1 = f1_score(y_test, y_pred) print("混淆矩阵:\n", cm) print(f"精确率:{precision:.2f}, 召回率:{recall:.2f}, F1值:{f1:.2f}")x修改以上代码
06-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值