范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python数据分析与数据挖掘学习路线!项目实战记录(完整篇)

  python数据挖掘项目实战记录
  取自《Python数据分析与挖掘实战》一书,整理各个项目中用到的数据处理方法: 数据预处理方法 建立模型方法 绘制图形
  对于分类问题:用模型分类;混淆矩阵及其绘图;观测其ROC曲线;
  对于聚类问题:划分类目数;获取划分类目中心;平行坐标系描述 (一)数据预处理的方法
  在获取数据之后,会发现一些数据值错误
  一、填补空值
  二、观察数据分布
  三、数据清洗,使数据值都合理存在
  四、数据规约,提取重要属性
  五、数据归一化,为了使用K-Means算法 数据读取#SVM,bayes,ANN,D_Tree,等需要操作的数据是矩阵,需要 data=data.as_matrix() #将series数据转为矩阵形式的训练集  from numpy.random import shuffle shuffle(data) #随机打乱数据 x_train=data_train[:,2:]*30 #将特征放大  import pickle pickle.dump(model, open("../tmp/svm.model", "wb"))# 保存模型 model = pickle.load(open("../tmp/svm.model", "rb"))# 读取模型  #将数据保存为固定文件格式 pd.DataFrame(cm_train, index=range(5),columns=range(5)).to_excel(outputfile1)一、拉格朗日插值法from scipy.interpolate import lagrange # 取数,两个列表尾接 y = s[list(range(n - k, n)) + list(range(n + 1, n + 1 + k))] y = y[y.notnull()] res=lagrange(y.index, list(y))(n)   #输入索引,和该列数据 n为空值下标二、series的内置插值法df = pd.DataFrame(data, columns=[0, 1, 2]) df.interpolate()三、电量趋势描述
  绘制折线图,观测电量下降趋势。 四、数据探索describe(include=’all).T
  通过数据探索,发现异常值,不合逻辑的错误值,如果数据集很大就可以丢弃,否则可以填充 explore = data.describe(include="all").T explore["null"] = len(data) - explore["count"] explore = explore[["null", "max", "min", "std"]]# count,unique,top,freq,mean,std,min,50%,max等选取几个属性  #计算相关系数矩阵,data必须是n*n矩阵 print(np.round(data.corr(method="pearson"), 2))五、数据清洗
  类似集合的操作,对于不合逻辑的错误值,设置索引,排除。 data = data[data["SUM_YR_1"].notnull() & data["SUM_YR_2"].notnull()] index1 = data["SUM_YR_1"] != 0 index2 = data["SUM_YR_2"] != 0 index3 = (data["SEG_KM_SUM"] == 0) & (data["avg_discount"] == 0) data = data[index1 | index2 | index3]六、属性转换
  数据的规约就是选取有用的数据属性,可以通过excel删除对应列即可实现。  # 选取某列 data=data[data["TARGET_ID"]==184].copy()  #获取该条件下的数据的副本 data_group=data.groupby("COLLECTTIME")  #以时间分组  def attr_trans(x):  # 定义属性变换函数     #创建新的series     result=pd.Series(index=["SYS_NAME", "CWXT_DB:184:C:", "CWXT_DB:184:D:", "COLLECTTIME"])  #设置列标     result["SYS_NAME"] = x["SYS_NAME"].iloc[0] #获取该属性值,唯一     result["COLLECTTIME"] = x["COLLECTTIME"].iloc[0] #获取该属性值,唯一     result["CWXT_DB:184:C:"] = x["VALUE"].iloc[0] #获取属性值A     result["CWXT_DB:184:D:"] = x["VALUE"].iloc[1] #获取属性值B,等等     return result  data_processed = data_group.apply(attr_trans)  # 逐组处理七、数据归一化和标准化
  使用正态分布的标准正态分布标准化:x-u/σ data = (data - data.mean(axis=0)) / data.std(axis=0)  # 按列选取均值和标准差。矩阵操作
  当发现数值范围对结果影响太大,不方便运算时,将数据标准化 data=(data-data.min())/(data.max()-data.min()) data=data.reset_index()八、数据离散化
  应用在发掘频繁项时,需要把连续数据转变为离散数据。     for i in range(len(keys)):         # 调用k-means算法,进行聚类离散化         r1 = pd.DataFrame(kmodel.cluster_centers_, columns=[typelabel[keys[i]]])  # 聚类中心,A         r2 = pd.Series(kmodel.labels_).value_counts()  # 分类统计         r2 = pd.DataFrame(r2, columns=[typelabel[keys[i]] + "n"])  #统计量, An          r = pd.DataFrame(pd.concat([r1, r2], axis=1))  #聚类中心与类别数目匹配连接         r = r.sort_values(typelabel[keys[i]])         r.index = [1, 2, 3, 4]          r[typelabel[keys[i]]] = pd.rolling_mean(r[typelabel[keys[i]]], 2)  # rolling_mean()用来计算相邻2列的均值,以此作为边界点。         r[typelabel[keys[i]]][1] = 0.0  # 这两句代码将原来的聚类中心改为边界点。         result = result.append(r.T) #转置添加      result = result.sort_index()  # 以Index(A,B,C,D,E,F)顺序排序,保存     result.to_excel(processedfile)九、图像切割和颜色矩阵提取
  1. 一阶颜色矩:采用一阶原点矩,反应图像的整体明暗程度
  Ei=1/N *  (j:1-N) Pij
  2. 二阶颜色矩:反应图像颜色的分布范围
  σi=(1/N * j:1-N (Pij-Ei)^2) ^1/2
  3. 三阶颜色矩:反应图像颜色分布的对称性 十、时间序列算法
  利用时间序列算法模型的流程,根据历史数据,来预测未来的数据情况
  采用时间序列算法对模型输入数据进行模型拟合、检验与检测。依据误差公式,计算预测值与验证数据之间的误差,分析其是否属于业务接受的范围内。
  模型识别AR,MA,ARMA
  平稳性检验,白噪声检验,模型识别,模型检验,模型预测,模型评价,模型应用 十一、行为分析与服务推荐
  连接数据库
  系统过滤算法为主,其他为辅。 推荐
  物品相似度:夹角余弦;杰卡德相似系数;相关系数
  熟悉基于物品的协同过滤算法使用 # 基于物品的协同过滤算法 def Jaccard(a, b):     return 1.0 * (a * b).sum() / (a + b - a * b).sum() class Recommender():     sim = None     def similarity(self, x, distance):         y = np.ones((len(x), len(x)))         for i in range(len(x)):             for j in range(len(x)):                 y[i, j] = distance(x[i], x[j])         return y     def fit(self, x, distance=Jaccard):  #x传入的是矩阵(行:物品,列:用户)         self.sim = self.similarity(x, distance) #计算相似度     def recommend(self, a): #传入预测用户的购买记录的矩阵.T = n * 1         return np.dot(self.sim, a) * (1 - a)十二、变量选择与灰色预测
  使用Lasso函数对与处理数据变量选择
  灰色预测得到关键影响因素的预测值
  使用神经网络对财政收入进行预测 十三、文本预处理#数据去重 l1 = len(data) data = pd.DataFrame(data[0].unique()) #选取数据列进行unique() l2 = len(data) data.to_csv(outputfile, index = False, header = False, encoding = "utf-8") print(u"删除了%s条评论。" %(l1 - l2))  #机械压缩去词,去除连续重复语料,和短句子删除过滤较多垃圾信息  #文本评论分词 mycut = lambda s: " ".join(jieba.cut(s)) #自定义简单分词函数 data1 = data1[0].apply(mycut)#对于读入的数据执行分词函数 data2 = data2[0].apply(mycut)#通过"广播"形式分词,加快速度。  #先将文本正负面评价分开,然后再进行LDA主题分析。COSTCM6中的情感分析做及其分类,生成正面情感和负面情感  # 正面主题分析 from gensim import corpora, models pos_dict = corpora.Dictionary(pos[2]) pos_corpus = [pos_dict.doc2bow(i) for i in pos[2]] pos_lda = models.LdaModel(pos_corpus, num_topics=3, id2word=pos_dict) for i in range(3):     neg_lda.print_topic(i)  # 输出每个主题(二)、模型方法
  一、神经网络
  二、决策树
  三、K-Means 一、LM神经网络
  API:
  add(); compile(); fit(); save_weights(); predict_classrs() from keras.models import Sequential from keras.layers import Dense, Activation net = Sequential() net.add(Dense(input_dim=3, activation="relu", units=10)) net.compile(loss="binary_crossentropy", optimizer="adam",  metrics=["accuracy"]) net.fit(train[:, :3], train[:, 3], epochs=1000, batch_size=1)#传入的是矩阵,读取excel需要把数据.as_matrix() net.save_weights(netfile) predict_result = net.predict_classes(train[:, :3]).reshape(len(train))二、CART决策树
  API:
  fit(); predict(); # 构建CART决策树模型 from sklearn.tree import DecisionTreeClassifier tree = DecisionTreeClassifier() tree.fit(train[:, :3], train[:, 3]) plt = cm_plot(test[:, 3], tree.predict(test[:, :3]))#获取结果 plt.show()三、K-Means K聚类算法from sklearn.cluster import KMeans import pandas as pd inputFile = "../data/zscoreddata.xls" data = pd.read_excel(inputFile) kmodel = KMeans(n_clusters=5, n_jobs=4) kmodel.fit(data) print(kmodel.cluster_centers_)四、SVM支持向量机from sklearn import svm smodel=svm.SVC()  #建立模型 smodel.fit(x_train,y_train)  #训练模型 res=smodel.predict(x_test)  #预测测试集(三)、绘制图形
  模型建立后,需要可视化分析数据挖掘的合理性,准确性等
  混淆矩阵:正确与错误分类的情况
  ROC曲线:分类方法的性能
  聚类群图:使数据值聚成n类,分析n类群体特征 混淆矩阵
  预测准确度:RMSE;MAE
  分类准确度:precesion=TP/TP+FP :表示用户对推荐产品感兴趣的可能性
  recall=TP/(TP+FN) :表示推荐的产品,占用户喜欢产品的概率 from sklearn.metrics import confusion_matrix  # 导入混淆矩阵函数 cm = confusion_matrix(y, yp)  # 混淆矩阵如下 # CM [[TP,FP],[FN,TN]] #例如["TP", "FP", "FN", "TN"] == [46, 2, 7, 4]  cm_train = confusion_matrix(train_label, smodel.predict(trainSet)) cm_test = confusion_matrix(test_label, smodel.predict(testSet)) pd.DataFrame(cm_train).to_excel(outFile1) pd.DataFrame(cm_test).to_excel(outFile2)ROC曲线from sklearn.metrics import roc_curve  # 导入ROC曲线函数 fpr, tpr, thresholds = roc_curve(test[:, 3], tree.predict_proba(test[:, :3])[:, 1], pos_label=1) plt.plot(fpr, tpr, linewidth=2, label="ROC of CART", color="green")  # 作出ROC曲线聚类群图import matplotlib.pyplot as plt centers = kmodel.cluster_centers_ for i in range(5): plt.plot([2, 4, 6, 8, 10], centers[i], label="group" + str(i),marker="o") #设置横轴纵轴分别对应5个点 plt.ylabel("values") plt.xlabel("index: L R F M C") plt.show()层次聚类谱图import matplotlib.pyplot as plt from scipy.cluster.hierarchy import linkage,dendrogram #这里使用scipy的层次聚类函数  Z = linkage(data_udf, method = "ward", metric = "euclidean") #谱系聚类图 P = dendrogram(Z, 0) #画谱系聚类图 plt.show()
  今日福利:Python学习资源大礼包 让你走上巅峰Python之AIoT学习资料Python入门教程完整版Python之配套书籍Python之数据分析与挖掘实战Python之人工智能资料Python之全栈开发资料Python之数据分析实战项目
  完整资源获取方式
  关注"麦叔Python"头条号,评论转发回复"666"即可获取。

2021年上半年,国产电视哪几款性价比最高?这三款高票当选进入7月,上半年正式结束,而今年的智能电视市场依然十分热闹,除了三星索尼等老牌厂商之外,不少国产品牌也进攻猛烈,推出了多款实力强劲的爆款新品。那么在琳琅满目的电视市场上,如何才能挑爆款诞生!特斯拉ModelY标准续航版售价仅27。6万元爱卡汽车新能源原创今年上半年,特斯拉经历了一系列公关危机,各种刹车失灵的传闻和一纸召回公告让特斯拉的名声跌落谷底。但是这些负面新闻并没有对特斯拉的销量造成实质性的影响,Model32021性价比高的无线耳机,学生平价蓝牙耳机推荐无线耳机这一两年可以说是非常火爆,但是什么牌子的蓝牙耳机好用,除了千元以上的还有没有性价比高的蓝牙耳机呢?很多人在挑选的时候都会犯难,为了帮助大家解决这一难题,这里给大家盘点几款性台积电,全球最大半导体代工厂,工厂介绍台积电(台湾积体电路制造股份有限公司)成立于1987年,主要业务半导体代工。目前已量产7纳米制造工艺主要用户包括苹果高通等芯片厂商,5纳米制造工艺已在2020年实现批量生产。台积电新能源步入市场化,车企护城河怎么挖?新能源市场正在以持续上扬的姿态宣告它已迈入市场化阶段,不断攀升的销量是最佳证明。根据中汽协公布的最新数据,今年5月,国内新能源汽车销量21。7万辆,同比增长159。715月累计销量骁龙888手机推荐相信很多人想要一个高配的手机但又想不贵今天它来了。建议收藏观看高通骁龙888是当前高通最顶级的旗舰级芯片,并且在5G连接能力电竞游戏体验AI运算架构以及移动影像技术等四个方面进行了折叠屏iPhone将面市被热议苹果的折叠屏手机好在哪里?近日,关于苹果或将在2023年推出折叠屏iPhone手机的消息引发了诸多网友的关注及热议。有不少网友还纷纷表示期待苹果公司能快点推出折叠屏手机。那么,为什么现在又突然对苹果的折叠屏iOS14。7beta5发布,修复WiFi符号漏洞今天,苹果发布了iOS14。7的第五个测试版,也就是iOS14。7beta5,版本号为18G5063a,更新包大小为300MB左右iOS14。7Beta5并没有带来新的功能,主要还RedmiAirDots3Pro曜石黑首销特惠价329元7月9日,RedmiAirDots3Pro真无线耳机曜石黑版本开启首销,特惠价329元。RedmiAirDots3Pro曜石黑采用豆状外形设计,提供曜石黑冰晶灰两种配色可选,支持I耳鸣有五六年了,能通过戴助听器解决吗?如果听力没有下降只是耳鸣是不需要戴助听器的,如果听力下降了是需要戴助听器的,助听器可以起到掩蔽耳鸣的作用,带上助听器后耳鸣消失或者减轻的例子比较常见。您好,耳鸣有五六年了,能通过戴请问几大笔记本电脑品牌到底哪个更靠谱?联想,华硕,戴尔,惠普,宏基选哪个?ASUS老奸巨猾,一线品牌,高端游戏本一线模样,低端笔记本欺骗消费者,而且个人认为专门欺骗对笔记本了解不足的小白。天选今年的CPU性能释放不错,但是其他硬件配置是不不拆机不知道你坑
国产手机已经全部上了120W快充,为什么苹果还是20W慢充?看过了很多答案,也看到了各种各样的理由,所以我也分享一下我的意见。苹果公司做不了120W快充?我可以肯定地回答,不,绝对不是!快充这种技术对于苹果这种世界级的科技公司来说绝对没有任店员下班后被搜包,库克也不知情?苹果与加州门店1。4万员工和解每人发8200元据彭博11月13日报道,苹果商店的员工在2013年提起集体诉讼,称该公司违反加州法律,不向他们支付检查背包所占时间而产生的费用。苹果公司声称,为确保店员不在包里藏匿偷取的电子设备,爬虫技术应用合法性引争议保障数据安全亟待规制非法爬取数据行为来源法治日报法制网核心阅读在大数据时代的背景下,愈来愈多的市场主体投入巨资收集整理和挖掘信息。如果任由网络爬虫任意使用他人通过巨大投入获取的数据资源,将不利于鼓励商业投入产业创新和井上操控更省心井下作业更安全来源人民网人民日报核心阅读开采更精确,检测更高效,数据共享更便捷近年来,5G工业互联网加速与传统采矿业深度融合,在远程设备操控无人智能巡检设备协同作业等方面形成了有效实践,促进行业45岁程序员发帖令人心酸精通各种技术,连个面试机会都没有在很多人的印象中,程序员是精英,敲几行代码就能改变世界。其实,绝大多数程序员做着普通的开发,每天都是重复性劳动,所谓的经验在这个快速发展的行业不值一提。更让人心塞的是内卷严重,国内关于我对航拍无人机最重要的方面一点看法目前大疆发布了一款御3无人机,网上一片叫好声,对于我一个大疆老用户来说,看了发布会视频,和有关该机的测评视频,我也不得不赞叹大疆这次升级是全方位的,相机避障搜星等,确实有了很大的升一万多元华为手机开放购买,4G版比5G版便宜500元要说华为旗下最贵的智能手机,不是新款的华为P50Pro,也不是起售价华为Mate40RS保时捷设计版本,而是折叠屏手机华为MateX2华为MateX2发布于今年年初,是华为旗下第三老美又搞新花样,允许高通出售芯片给华为,任正非直接摊牌了众所周知,因为华为研究了领先全球的5G技术,因此遭受到了老美的一系列打压,比如构陷华为5G设备存在安全后门挑唆其他国家排挤华为和施压台积电给华为芯片断供等等,的确这给华为的手机业务双十一都过了,还有哪些手机值得买?今年的双十一,不同往年,各家厂商的活动力度都是非常大的,各种补贴,各种优惠,买买买就完了。不过最近有好多小伙伴问我,那么多旗舰手机,究竟哪一台才是最值得购买的。说实话,这个问题可是品学兼优!电脑扩容选择不再难,大华C900PLUS固态硬盘测评作为一枚游戏爱好者,大家对于固态硬盘SSD应该是非常的熟悉了,是我们装机必备的硬件,即使是装机小白,也都知道电脑装了固态硬盘可以说大幅提高运行速度,开机速度也会变快许多。如今固态硬元宇宙是什么Roblox给出的定义,包含八大要素身份朋友沉浸感低延迟多元化随时随地经济系统和文明。要素众多,每个要素背后,还有一连串的解释。总之,一句话说不清楚,这也恰恰说明这一概念的模糊性。