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

机器学习在房屋价格预测上的应用

  前言
  Python 在机器学习方面有天然的优势,那么我们今天也来涉足一下机器学习方面的技术,以下是在学习过程中的一些笔记,里面有大量的注释说明,用于理解为什么这样操作。
  代码实现如下:Numpy & Pandas & Matplotlib & Ipython#NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 import numpy as np  #Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征 import pandas as pd  #Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案 import matplotlib.pyplot as plt  #Ipython.display的库是用来展示图片的 from IPython.display import Image from sklearn.model_selection import train_test_split  import  warnings warnings.filterwarnings("ignore")  data = pd.read_csv("train.csv") print(type(data)) print(data.info()) print(data.shape) print(data.head()) print(data[["MSSubClass","LotArea"]]) 数据集合&缺失值#选择数据集合中的几个重要特征 data_select = data[["BedroomAbvGr","LotArea","Neighborhood","SalePrice"]]  #对数据集中的字段进行重命名 data_select = data_select.rename(columns={"BedroomAbvGr":"room","LotArea":"area"}) print(data_select) print(data_select.shape) print("*"*100)  #判断缺失值一般采用 isnull(),然而生成的却是所有数据的true/false矩阵 print(data_select.isnull())  #df.isnull().any()则会判断哪些"列"存在缺失值 print(data_select.isnull().any())  #只显示存在缺失值的行列,清楚的确定缺失值的位置 print(data_select.isnull().values==True)  #对缺失的数据进行过滤 data_select=data_select.dropna(axis=0) print(data_select.shape) print(data_select.head())  #print(np.take(data_select.columns,[0,1,3])) #print(type(np.take(data_select.columns,[0,1,3]))) 归一化处理#数太大,归一化,让数据的分布处于同一区间,咱们选择一种最简单的数据调整方法,每一个数除以其最大值 for col in np.take(data_select.columns,[0,1,-1]):     # print(col)     # print(data_select[col])     data_select[col] /= data_select[col].max()  print(data_select.head())  #分配测试数据和训练数据 train,test = train_test_split(data_select.copy(),test_size=0.9) print(train.shape) print(test.shape) print(test.describe())   #numpy 里面axis=0 and axis=1 的使用示例说明: print("="*50) data=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) print(data) print(data.shape) #shape=[3,4] 即为3行4列 print(np.sum(data)) #在numpy中若没有指定axis,默认对所有的数据相加  print(np.sum(data,axis=0))#若指定了axis=0,则沿着第一个维度的方向进行计算,即为3 按列中的3个数据进行计算,得到4组列数据计算结果  print(np.sum(data,axis=1))#若指定了axis=1,则沿着第二个维度的方向进行计算,即为4 按行中的4个数据进行计算,得到3组行数据计算结果  print("="*50)  #pandas 里面axis=0 and axis=1 的使用示例说明: #如果我们调用df.mean(axis=1),我们将得到按行计算的均值 df=pd.DataFrame(np.arange(12).reshape(3,4)) print(df)  print(df.mean()) #在pandas中,如果没有指定axis,则默认按axis=0来计算  print(df.mean(axis=0)) #若指定了axis=0,则按照第一个维度的变化方向来计算,即为3 按列中的3个数据进行计算,得到4组列数据计算结果  print(df.mean(axis=1)) #若指定了axis=1,则按照第二个维度的变化方向来计算,即为4 按行中的4个数据进行计算,得到3组行数据计算结果 线性回归模型#线性回归模型,假设 h(x) = wx + b 是线性的. def linear(features,pars):     print("the pars is:",pars)     print(pars[:-1])     price=np.sum(features*pars[:-1],axis=1)+pars[-1]     return price  print("*"*100) train["predict"]=linear(train[["room","area"]].values,np.array([0.1,0.1,0.0]))  #能够看到,在该参数下,模型的预测价格和真实价格有较大的差距.那么寻找合适的参数值是咱们须要作的事情 print(train.head())   #预测函数为 h(x) = wx + b #偏差的平方和函数: def mean_squared_error(pred_y,real_y):     return sum(np.array(pred_y-real_y)**2)  #损失函数: def lost_function(df,features,pars):     df["predict"]=linear(df[features].values,pars)     cost=mean_squared_error(df.predict,df.SalePrice)/len(df)     return cost  cost=lost_function(train,["room","area"],np.array([0.1,0.1,0.1])) print(cost)  #linspace函数原型:linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) #作用为:在指定的大间隔内,返回固定间隔的数据。他将返回"num"个等间距的样本,在区间[start, stop]中。其中,区间的结束端点可以被排除在外,默认是包含的。 num=100 Xs = np.linspace(0,1,num) Ys = np.linspace(0,1,num) print(Xs) #如果num=5 ->[0.   0.25 0.5  0.75 1.  ] print(Ys) #如果num=5 ->[0.   0.25 0.5  0.75 1.  ]  #zeros函数原型:zeros(shape, dtype=float, order="C") #作用:通常是把数组转换成想要的矩阵; #示例:np.zeros((2,3),dtype=np.int) Zs = np.zeros([num,num]) #100*100的矩阵,值全为0. print(Zs)  #meshgrid 从坐标向量中返回坐标矩阵 Xs,Ys=np.meshgrid(Xs,Ys) print(Xs.shape,Ys.shape) print(Xs) #如果num=5 则处理后的矩阵为: """ [[0.   0.25 0.5  0.75 1.  ]  [0.   0.25 0.5  0.75 1.  ]  [0.   0.25 0.5  0.75 1.  ]  [0.   0.25 0.5  0.75 1.  ]  [0.   0.25 0.5  0.75 1.  ]] """ print(Ys) #如果num=5 则处理后的矩阵为: """ [[0.   0.   0.   0.   0.  ]  [0.25 0.25 0.25 0.25 0.25]  [0.5  0.5  0.5  0.5  0.5 ]  [0.75 0.75 0.75 0.75 0.75]  [1.   1.   1.   1.   1.  ]] """ W1=[] W2=[] Costs=[]  for i in range(100):     for j in range(100):         W1.append(0.01*i)         W2.append(0.01*j)         Costs.append(lost_function(train,["room","area"],np.array([0.01*i,0.01*j,0.]))) #numpy.argmin(a, axis=None, out=None) #a:一个矩阵 #axis:整数,可选(没选择的话就是整个数组的展开)(0:行,1列) #返回小值的下标 index=np.array(lost_function).argmin() print(W1[index],W2[index],Costs[index])  from mpl_toolkits.mplot3d import Axes3D fig=plt.figure() ax = fig.add_subplot(111,projection="3d") ax.view_init(5,-15) ax.scatter(W1,W2,Costs,s=10) ax.scatter(0.58,0.28, zs=lost_function(train,["room","area"],np.array([0.58,0.28,0.0])),s=100,color="red") plt.xlabel("rooms") plt.ylabel("llotArea") plt.show()

工信部截至11月份末网络电视总用户数达3。47亿户来源人民网原创稿人民网北京12月23日电(申佳平)工业和信息化部运行监测协调局近日公布的2021年111月份通信业经济运行情况显示,111月份,我国通信业运行态势总体良好。电信业务手感超iPhone13!小米12小尺寸旗舰稳了12月22日,小米宣布小米12获得DisplayMateA等级,创造15项屏幕新纪录,拥有出众的色准色深表现,16000级屏幕亮度调节,以及更坚固的康宁大猩猩玻璃Victus但有个退场前大跳水,2K曲面屏IP68防水,小米高端旗舰直降1800元经历了漫长的等待后,小米终于在12月21日官宣新旗舰小米12系列将于12月28日发布,届时全新的小米12系列机型和MIUI13系统都将隆重登场。这一代小米12一改常态,采用双尺寸方golang实现自定义Cache模型有时候我们在我们自己的项目中需要实现兼容各种驱动的Cache模型,以便于通过配置更换缓存类型。缓存模型需要支持不同驱动,例如memoryfileredismysql,实现思路代码如不鸡肋不闲置,推荐几款实用且能改善生活的小家电大家好,我是P哥,今天为大家推荐几款好用的小家电。现在网上很流行一种视频拍摄风格叫沉浸式,内容非常广泛,从沉浸式化妆收纳,到沉浸式做饭,甚至还有沉浸式回家。在沉浸式回家这类型视频中黑科技新材料气凝胶,在高铁上的应用近些年来,我国科技逐渐崛起,发展势头堪称井喷之势!大家都在为我国的科技发展感到骄傲。据新华社报道,截至去年年底,中国高铁营业里程达到3。79万公里,占世界高铁总里程的69,稳居世界国家铁路局发布十四五铁路科技创新规划中国网财经12月23日讯据国家铁路局网站消息,近日,国家铁路局发布十四五铁路科技创新规划(以下简称规划),明确十四五时期我国铁路科技创新工作的指导思想基本原则发展目标和重点任务。规探秘谁编写了区块链的规则?Dogecoin,一夜之间铸就百万富翁的玩笑货币CryptoKitties,卡通猫数字交易卡,售价超过10万美元Pringles风味仅作为NFT数字产品存在,但其售价远远超过实际可什么是互联网营销师?2022年报名条件新要求如何考取?就业前景近年来随着网络技术和网络娱乐服务业的迅猛发展,各大平台消费人群日趋年轻化,随着依法治国的道路不断进行,我国政策法规也日趋完善。直播带货直播卖货已成为当下网购新形式,李佳琦们终于转正SpringSession实现Session共享入门教程Web中的Session和Cookie回顾1。Session机制由于HTTP协议是无状态的协议,一次浏览器和服务器的交互过程就是浏览器你好吗?服务器很好!这就是一次会话,对话完成后你不知道的JSON。stringifyJSON。stringify是我们经常用到的的一个方法,它主要作用是将JavaScript值和对象转换为字符串。如JSON。stringify(foobar)foobarJSON。
概念林志玲,量产罗玉凤概念林志玲,量产罗玉凤相信这句话很多车友们都有所耳闻。很多车友们在车展上看到许许多多天马行空的概念车时都充满了期待,可随之量产之后却让许多车友们大失所望。事实上,许多概念车的设计思80的人都把App念错了,诶屁屁还是爱普?读错N遍后我终于找到答案App这个词,相信屏幕前的各位是再熟悉不过的了,手持智能手机的你不可能没见过,但这个词的读法困扰了我很久。从来源来看,app是英文单词application的简称,意思就是应用,可华为这样打脸美国4万多个5G基站已发往全球从去年起就铁了心要禁华为的美国,最近非常无奈。美国一直呼吁其他国家,勿采用华为的产品建立5G网络,但不少国家显然没理会其警告。据路透社4月4日报道,美国承认,许多国家并未听取其有关中国有几百万基站,但运营商为啥要伪装起来?如今,可算明白了!众所周知,如今智能手机普及程度非常高,日常发短信几秒钟就可以搞定,打电话的信号也比以前的按键机时代更好了。但是,大家知道吗,这些都是依靠基站来实现的,基站可看作一个无线调制解调器,微信大更新啦!这个被吐槽的功能终于改了!微信又双叒叕要更!新!啦!但是这次的更新没有iOS的份!还是安卓版本一起来看看这次有那些新功能!1可屏蔽好友查看的在看微信7。0版本新添了一个看一看功能,大家都表示这个功能让人非常5款厉害神奇的手机黑科技APP,使你的手机变全能现在手机应用市场的APP越来越多,各种功能是五花八门。下面介绍几款小编经常用的黑科技APP,不但可以扩充你手机的功能,更重要的是全部免费使用呦!1夸克这是一款小巧的手机智能浏览器A如何选拍照手机?没注意这些问题要后悔有的人经常说,手机镜头只要能扫码就够了,但是你不得不承认,很多时候你在网上分享的那些精彩瞬间或生活碎片,都出自手机。看到手机也能拍出高动态范围色彩明艳细节丰富的照片,既让人兴奋,随预算在2000元以内,可以看看这几款手机,性价比很不错(补充版)1RealmeGT大师版骁龙778GLPDDR4XUFS2。2120Hz三星AMOLED直屏4300mAh65W闪充光学屏下指纹解锁NFCZ轴线性马达全网最低价1539元起2Rea友商再次良心,12256G大内存三主摄68W快充,新骁龙8仅2799元人们在买手机的时候,或多或少都会考虑性价比,毕竟钱也不是大风刮来的,这两年受到疫情的影响,很多人收入都减少了,因此什么旗舰什么机皇,除了土豪党可以买买买之外,大部分朋友都考虑中端机先于时代的大牛牛今天来聊聊朋友借我玩的大牛牛,本来想整个骚彩但是后面歪打正着整了个纯欲白,用着用着我发现这玩意儿比骚彩好看多了外观这外观你敢说不好看?是真的好看,屏幕真的真的很好看,我主力12pm元宇宙时代来了?专家上下游产业产值超300亿元中新财经5月11日电(记者庞无忌)去年以来,元宇宙概念炙手可热,但争议同样不断。如何拥抱互联网产业的下半场?11日,中国计算机行业协会元宇宙产业专委会正式发起成立。德国工程院院士汉