【 專案:深圳市二手房房價分析及預測
In [ ]:
# coding:utf-8# 【 專案:深圳市二手房房價分析及預測 】# --------------------------------【 資料理解 】--------------------------------------# (一) 匯入資料 並進行初步的資料觀察# 1.改變工作目錄到 資料集所在資料夾import osimport pandas as pdpd.set_option('display.max_columns',None)data_path = r'D:\Data_Sets_of_Analysis\Project_2_House_Price_of_ShenZhen\Data_of_House_Price_ShenZhen'save_path = r'D:\Data_Sets_of_Analysis\Project_2_House_Price_of_ShenZhen'os.chdir(data_path)loadfile = os.listdir() # 讀取目錄下所有檔案df = pd.DataFrame()for i in loadfile: # 將多個xls檔案進行合併
locals()[i.split('.')[0]] = pd.read_excel(i)
df = pd.concat([df,locals()[i.split('.')[0]]])df = df.rename(columns={'Unnamed: 0':'houseid'})print('深圳各區二手房房價資訊合併完成')print('='*100) # 劃分割線,方便檢視
In [ ]:
# 2.檢視資料情況# # 1) 資料總體情況print('資料集中的樣本量共有%d個' % df.shape[0]) # 檢視資料量(行數)print('-'*100)print(df.duplicated()) # 判斷是否有重複項print('-'*100)print(df.head()) # 檢視前五行print('-'*100)print(df.describe(include='all').T) # 檢視描述基本資訊print('-'*100)del df['houseid'] # 刪去之後不用的行del df['floor_num']'''資料無缺失、無重複'''
In [ ]:
# # 2) 檢視分類變數的取值import sqlite3con = sqlite3.connect(':memory:')df.to_sql('df',con)print(list(df))print('檢視分類變數的取值')for i in list(df[['district','roomnum','hall','C_floor','school','subway']]):
s = pd.read_sql_query('SELECT DISTINCT %s from df' % i,con)
print(s)
print('-'*12)print('='*100) # 劃分割線,方便檢視
In [ ]:
# # 3) 將城區名由中文改成拼音,方便之後作圖時檢視dist_dict = {'longgang':'龍崗','longhua':'龍華','baoan':'寶安','nanshan':'南山','futian':'福田','luohu':'羅湖','pingshan':'坪山','guangming':'光明','yantian':'鹽田','dapengxinqu':'大鵬新區'}df['district'] = df['district'].apply(lambda x:dist_dict[x])print(df.head())print('='*100) # 劃分割線,方便檢視
In [ ]:
# # 4) 生成一個excel表格用於分析列名含義table_columns = pd.DataFrame(columns=['表名','表說明','列名','列名含義','備註'])table_columns['列名'] = list(df)table_columns.to_excel(save_path + r'\列名含義分析表(請另存).xls')print('列名含義分析表 已生成')print('='*100) # 劃分割線,方便檢視
In [ ]:
# --------------------------------【 目標拆解分析 】--------------------------------------# (二) 因變數分析# # 1. 單位面積房價分析# # # 設定負號顯示及字型from matplotlib import pylabpylab.rcParams['font.sans-serif'] = ['SimHei']pylab.rcParams['axes.unicode_minus'] = False# # # 1) 作因變數直方圖import matplotlib.pyplot as pltdf.per_price.hist(grid=False,bins=20,color='lightblue')plt.title('單位面積房價頻數圖')plt.xlabel('單位面積房價(萬元/平方米)')plt.ylabel('頻數')plt.show()'''透過直方圖可發現資料是偏態分佈的(右偏 → 那麼之後可能會取對數)'''
In [ ]:
# # # 2) 檢視 均值、中位數、標準差、四分位數print(df.per_price.agg(['mean','median','std']))print(df.per_price.quantile([0.25,0.5,0.75]))print('='*100)'''價格的平均數mean: 6.118192價格的中位數:5.246300價格的標準差std:3.050218四分位數情況: 0.25 4.0526 0.50 5.2463 0.75 7.3574'''
In [ ]:
# # # 3) 檢視房價的 最大值 和 最小值print('房價最大值為%s萬元/㎡' % max(df.per_price))print('房價最小值為%s萬元/㎡' % min(df.per_price))print('='*100)'''房價最大值為26.3968萬元/㎡房價最小值為1.0101萬元/㎡'''
In [ ]:
# (三) 自變數# # 1. 整體來看# # # 1) 分類變數 看 各個取值 的 數量統計 情況for i in range(len(list(df))):
if i != list(df).index('AREA') and i != list(df).index('per_price'):
print(df.columns.values[i],':')
print(df[df.columns.values[i]].value_counts())
print('-'*100)
else:
continueprint('='*100)'''dist列中 每個區的樣本量均在500以上;roomnum列中 最多的型別是3房,6~9房的佔比很少;halls列中 最普遍的是2個;floor列中 middle的數量多一些,high和low基本持平;subway列中 基本持平;school列中 學區房更多一些'''
In [ ]:
# # # 2) 連續變數 看 最小、最大值、平均數、中位數、標準差print('AREA:')print(df.AREA.agg(['min','mean','median','max','std']).T)print('='*100)'''AREA:min 15.000000mean 95.224924median 88.000000max 697.200000std 48.570130資料情況相對還是比較正常的'''
In [ ]:
# # 2. 分開各個量 → district列# # # 各個區的房屋資訊數量情況比較colors = ['#71ae46','#96b744','#c4cc38','#ebe12a','#eab026','#e3852b','#d85d2a','#ce2626','#ac2026','#71ae46']df.district.value_counts().sort_values().plot(kind='pie',autopct="%1.1f%%",colors=colors)plt.title('各個區的房屋資訊數量情況比較')plt.show()print(df.district.value_counts().sort_values(ascending=False))print('='*100)
In [ ]:
# # # 各個區房價均值比較colors = ['#71ae46','#71ae46','#96b744','#c4cc38','#ebe12a','#eab026','#e3852b','#d85d2a','#ce2626','#ac2026']df.per_price.groupby(df.district).mean().sort_values().plot(kind='barh',color=colors)plt.xlabel('各個區房價均值(萬元/平方米)')plt.ylabel('區名')plt.title('各個區的房價均值情況表')A = df.per_price.groupby(df.district).mean().sort_values()for i in range(len(list(df.district.value_counts()))): # 為圖表加數字標籤
plt.text(A[i],i,round(A[i],4),fontsize=10,verticalalignment="top",horizontalalignment="right") # round(A[i],4)保留四位小數plt.show()
In [ ]:
# # # 不同城區的單位面積房價(盒須圖)import seaborn as snsdf_temp1 = df[['district','per_price']].sort_values(by=['district'])df_temp1['district'] = df_temp1['district'].astype('category') # 標籤排序df_temp1['district'] = df_temp1['district'].cat.set_categories(['大鵬新區','坪山','龍崗','光明','鹽田','龍華','羅湖','寶安','福田','南山'])plt.figure(figsize=(12,6)) # 設定畫布大小sns.boxplot(x='district',y='per_price',data=df_temp1,linewidth=0.5,palette=sns.cubehelix_palette(16,start=2, rot=2, dark=0, light=.95))plt.ylabel('單位面積房價(萬元/平方米)')plt.xlabel('城區')plt.title('不同城區的單位面積房價的分組箱線圖')plt.show()'''由盒須圖可知,隨著x值的不同,中心水平是有變化的,故可初步判斷二者是有關係的'''
In [ ]:
# # 3. 分開各個量 → roomnum列# # # 不同臥室數的單位面積房價df.per_price.groupby(df.roomnum).mean().plot(kind='bar',color=colors)plt.xticks(rotation=360)plt.title('不同臥室數的單位面積房價')plt.show()df_temp2 = df[['roomnum','per_price']]# df_temp2.boxplot(by='roomnum',patch_artist=True) # patch_artist上下四分位框內是否填充,True為填充plt.figure(figsize=(12,6))sns.boxplot(x=df_temp2['roomnum'],y=df_temp2['per_price'],palette=sns.cubehelix_palette(16,start=2, rot=0, dark=0, light=.95))plt.title('不同臥室數的單位面積房價')plt.show()
In [ ]:
# # 4. 分開各個量 → hall列# # # 不同廳數的單位面積房價df.per_price.groupby(df.hall).mean().plot(kind='bar',color=colors)plt.xticks(rotation=360)plt.title('不同廳數的單位面積房價')plt.show()df_temp3 = df[['hall','per_price']]plt.figure(figsize=(10,6))sns.boxplot(x=df_temp3['hall'],y=df_temp3['per_price'],palette=sns.cubehelix_palette(10,start=2, rot=0, dark=0, light=.95))plt.title('不同廳數的單位面積房價')plt.show()
In [ ]:
# # 5. 分開各個量 → C_floor列df_temp4 = df[['C_floor','per_price']]sns.boxplot(x=df['C_floor'],y=df_temp4['per_price'],palette=sns.cubehelix_palette(6,start=2, rot=0, dark=0, light=.95))plt.title('不同樓層的單位面積房價')plt.show()'''不同臥室數的單位面積房價差異不大;不同廳數的單位面積房價有一定影響;不同樓層的單位面積房價差異不明顯'''
In [ ]:
# 6.分開各個量 → subway# # # 是否臨近地鐵對單位面積房價的影響df_temp5 = df[['subway','per_price']]sns.boxplot(x=df_temp5['subway'],y=df_temp5['per_price'],palette=sns.cubehelix_palette(4,start=2, rot=0, dark=0, light=.95))plt.title('是否臨近地鐵對單位面積房價的影響')plt.show()
In [ ]:
# # 7.分開各個量 → school# # # 是否是學區房對房價的影響df_temp6 = df[['school','per_price']]sns.boxplot(x=df_temp6['school'],y=df_temp5['per_price'],palette=sns.cubehelix_palette(4,start=2,rot=0,dark=0,light=.95))plt.title('是否是學區房對房價的影響')plt.show()
In [ ]:
def stack2dim(raw, i, j, rotation=0, location='upper left'):
''' 此函式是為了畫兩個維度標準化的堆積柱狀圖 要求是目標變數j是二分類的 raw為pandas的DataFrame資料框 i、j為兩個分類變數的變數名稱,要求帶引號,比如"school" rotation:水平標籤旋轉角度,預設水平方向,如標籤過長,可設定一定角度,比如設定rotation = 40 location:分類標籤的位置,如果被主體圖形擋住,可更改為'upper left' '''
import math
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data_raw = pd.crosstab(raw[i], raw[j])
data = data_raw.div(data_raw.sum(1), axis=0) # 交叉錶轉換成比率,為得到標準化堆積柱狀圖
# 計算x座標,及bar寬度
createVar = locals()
x = [0] # 每個bar的中心x軸座標
width = [] # bar的寬度
k = 0
for n in range(len(data)):
# 根據頻數計算每一列bar的寬度
createVar['width' + str(n)] = data_raw.sum(axis=1)[n] / sum(data_raw.sum(axis=1))
width.append(createVar['width' + str(n)])
if n == 0:
continue
else:
k += createVar['width' + str(n - 1)] / 2 + createVar['width' + str(n)] / 2 + 0.05
x.append(k)
# 以下是透過頻率交叉表矩陣生成一列對應堆積圖每一塊位置資料的陣列,再把陣列轉化為矩陣
y_mat = []
n = 0
for p in range(data.shape[0]):
for q in range(data.shape[1]):
n += 1
y_mat.append(data.iloc[p, q])
if n == data.shape[0] * 2:
break
elif n % 2 == 1:
y_mat.extend([0] * (len(data) - 1))
elif n % 2 == 0:
y_mat.extend([0] * len(data))
y_mat = np.array(y_mat).reshape(len(data) * 2, len(data))
y_mat = pd.DataFrame(y_mat) # bar圖中的y變數矩陣,每一行是一個y變數
# 透過x,y_mat中的每一行y,依次繪製每一塊堆積圖中的每一塊圖
createVar = locals()
for row in range(len(y_mat)):
createVar['a' + str(row)] = y_mat.iloc[row, :]
if row % 2 == 0:
if math.floor(row / 2) == 0:
label = data.columns.name + ': ' + str(data.columns[row])
plt.bar(x, createVar['a' + str(row)],
width=width[math.floor(row / 2)], label='0', color='#5F9EA0')
else:
plt.bar(x, createVar['a' + str(row)],
width=width[math.floor(row / 2)], color='#5F9EA0')
elif row % 2 == 1:
if math.floor(row / 2) == 0:
label = data.columns.name + ': ' + str(data.columns[row])
plt.bar(x, createVar['a' + str(row)], bottom=createVar['a' + str(row - 1)],
width=width[math.floor(row / 2)], label='1', color='#8FBC8F')
else:
plt.bar(x, createVar['a' + str(row)], bottom=createVar['a' + str(row - 1)],
width=width[math.floor(row / 2)], color='#8FBC8F')
plt.title(j + ' vs ' + i)
group_labels = [data.index.name + ': ' + str(name) for name in data.index]
plt.xticks(x, group_labels, rotation=rotation)
plt.ylabel(j)
plt.legend(shadow=True, loc=location)
plt.show()
In [ ]:
# # # subway+school 地鐵 + 學區print(pd.crosstab(df.subway,df.school))sub_shc = pd.crosstab(df.subway,df.school)sub_shc = sub_shc.div(sub_shc.sum(1),axis=0)print(sub_shc)print('='*100)# # # subway+school 的 兩維度分組堆積圖from stack2dim import *stack2dim(df,i='subway',j='school')'''是否臨近地鐵和是否時學區房對房價有一定影響;地鐵房中的學區房比重 比 非地鐵房中的學區比重更大'''
In [ ]:
# # 8.面積 AREA x,y均為連續變數,畫散點圖df_temp7 = df[['AREA','per_price']]plt.scatter(df_temp7.AREA,df_temp7.per_price,marker='.',color='#00686b')plt.title('面積AREA 和 單位面積房價per_price 的 散點圖')plt.ylabel("單位面積房價")plt.xlabel("面積(平方米)")plt.show()
In [ ]:
# # # 求AREA和per_price的相關關係矩陣import numpy as npdf_temp_A = np.array(df_temp7['per_price'])df_temp_B = np.array(df_temp7['AREA'])df_temp_AB = np.array([df_temp_A,df_temp_B])print(np.corrcoef(df_temp_AB))print('-'*50)'''1. 從散點圖可看出,點由左向右逐漸稀疏,考慮對y取對數後再作散點圖2.corrcoef: [[1. 0.31332208] [0.31332208 1. ]]'''
In [ ]:
# # # 面積AREA 和 單位面積房價per_price(取對數後) 的 散點圖A = df_temp7.copy()# A.loc[:,'per_price_ln'] = A.loc[:,'per_price'].apply(lambda x:np.log(x))A['per_price_ln'] = A['per_price'].apply(lambda x:np.log(x))plt.scatter(A.AREA,A.per_price_ln,marker='.',color='#00686b')plt.title('面積AREA 和 單位面積房價per_price(取對數後) 的 散點圖')plt.ylabel("單位面積房價(取對數後)")plt.xlabel("面積(平方米)")plt.show()
In [ ]:
df_temp_C = np.array(A['per_price_ln'])df_temp_D = np.array(A['AREA'])df_temp_CD = np.array([df_temp_C,df_temp_D])print(np.corrcoef(df_temp_CD))print('-'*50)'''[[1. 0.26030901] [0.26030901 1. ]]依然呈現明顯的右邊集中特點,考慮對x變數也取對數'''
In [ ]:
# # # 面積AREA(取對數後) 和 單位面積房價per_price(取對數後) 的 散點圖B = df_temp7.copy()B['per_price_ln'] = np.log(B['per_price'])B['AREA_ln'] = np.log(B['AREA'])plt.scatter(B.per_price_ln,B.AREA_ln,marker='.',color='#00686b')plt.title('面積AREA(取對數後) 和 單位面積房價per_price(取對數後) 的 散點圖')plt.ylabel("單位面積房價(取對數後)")plt.xlabel("面積(平方米)(取對數後)")plt.show()
In [ ]:
# # # AREA_ln 和 per_price_ln 的相關係數矩陣df_temp_E = np.array(B['per_price_ln'])df_temp_F = np.array(B['AREA_ln'])df_temp_EF = np.array([df_temp_E,df_temp_F])print(np.corrcoef(df_temp_EF))print('-'*50)'''[[1. 0.18715179] [0.18715179 1. ]] 兩者都取對數後,分佈正態了,故之後建模時,應該二者都取對數 '''
In [ ]:
# --------------------------------【 建立房價預測模型 】--------------------------------------# (一) 檢驗變數 → 每個解釋變數是否和被解釋變數獨立# # 1.進行抽樣'''原始樣本量太大,若要使用基於P值的模型構建,需進行抽樣,考慮本資料分十個不同的區,選擇分層抽樣'''from get_sample import * # 已經另外編寫好的抽樣函式data = get_sample(df,sampling='stratified',k=250,stratified_col=['district'])# # 2.檢驗各個變數的解釋力度'''前面分析得到的結論是:不同臥室數的單位面積房價差異不大;不同廳數的單位面積房價有一定影響;不同樓層的單位面積房價差異不明顯;是否臨近地鐵和是否時學區房對房價有一定影響;'''import statsmodels.api as smfrom statsmodels.formula.api import olsl = ['district', 'roomnum', 'hall', 'school', 'subway']for i in l:
print('%s的P值為:%.4f' % (i,sm.stats.anova_lm(ols('per_price~C(%s)' % i,data=data).fit())._values[0][4]))'''以上P值均為零'''
In [ ]:
# # # 對於hall列,由之前的柱狀圖可知,廳數為3的要明顯和其他數量的有較大的區別,對此將其轉換為{“廳數為3”:1}和“{廳數不為3”:0}的二分類變數data['hall_judge'] = data['hall'].apply(lambda x:'廳數為3' if x==3 else '廳數不為3')print(data.head())
In [ ]:
# # # 對於對分類變數,生成啞變數data1 = pd.get_dummies(data[['district','C_floor']]) # get_dummies特徵提取one-hot encodingprint(data1.head())data1.drop(['district_大鵬新區','C_floor_high'],axis=1,inplace=True) # 這兩個是參照組
In [ ]:
# # # 生成的啞變數與其他所需變數合併成新的資料表data2 = pd.concat([data1,data[['school','subway','hall_judge','roomnum','AREA','per_price']]],axis=1)print(data2.head())
In [ ]:
# (二) 迴歸模型# # 1.線性迴歸模型lm1 = ols('per_price ~ district_羅湖+district_坪山+district_南山+district_光明+district_龍華+district_鹽田+district_龍崗+district_福田+district_寶安+school+subway+C_floor_middle+C_floor_low+AREA',data=data2).fit()lm1_summary = lm1.summary()print(lm1_summary) # 迴歸結果展示data1['predict1'] = lm1.predict(data2)data1['resid1'] = lm1.residdata1.plot('predict1','resid1',kind='scatter',color='#00686b')plt.show()'''作散點圖 → 模型診斷圖:從左往右圖形發散,即:存在異方差現象,對因變數取對數'''
In [ ]:
# # 2.對數線性模型data2['per_price_ln'] = np.log(data2['per_price'])data2['AREA_ln'] = np.log(data2['AREA'])# # # 1) 只對y取對數lm2 = ols('per_price_ln ~ district_羅湖+district_坪山+district_南山+district_光明+district_龍華+district_鹽田+district_龍崗+district_福田+district_寶安+school+subway+C_floor_middle+C_floor_low+AREA',data=data2).fit()lm2_summary = lm2.summary()print(lm2_summary)data2['predict2'] = lm2.predict(data2)data2['resid2'] = lm2.residdata2.plot('predict2','resid2',kind='scatter',color='#00686b')plt.show()
In [ ]:
# # # 2) 對y和x都取對數lm3 = ols('per_price_ln ~ district_羅湖+district_坪山+district_南山+district_光明+district_龍華+district_鹽田+district_龍崗+district_福田+district_寶安+school+subway+C_floor_middle+C_floor_low+AREA_ln',data=data2).fit()lm3_summary = lm3.summary()print(lm3_summary)data2['predict3'] = lm3.predict(data2)data2['resid3'] = lm3.residdata2.plot('predict3','resid3',kind='scatter',color='#00686b')plt.show()
In [ ]:
# # 3.有互動項的對數線性模型,城區和學區之間的互動作用schools=['坪山','龍崗','光明','鹽田','龍華','羅湖','寶安','福田','南山']print('大鵬新區非學區房\t',round(data[(data['district']=='大鵬新區')&(data['school']==0)]['per_price'].mean(),2),'萬元/平方米\t',
'大鵬新區學區房\t',round(data[(data['district']=='大鵬新區')&(data['school']==1)]['per_price'].mean(),2),'萬元/平方米')print('-------------------------------------------------------------------------')for i in schools:
print(i+'非學區房\t',round(data2[(data2['district_'+i]==1)&(data2['school']==0)]['per_price'].mean(),2),'萬元/平方米\t',i+'學區房\t',round(data2[(data2['district_'+i]==1)&(data2['school']==1)]['per_price'].mean(),2),'萬元/平方米')
In [ ]:
# # # 圖形描述d = pd.DataFrame()dist = ['大鵬新區','坪山','龍崗','光明','鹽田','龍華','羅湖','寶安','福田','南山']Noschool = []school = []for i in dist:
Noschool.append(data[(data['district'] == i) & (data['school'] == 0)]['per_price'].mean())
school.append(data[(data['district'] == i) & (data['school'] == 1)]['per_price'].mean())d['district']=pd.Series(dist)d['Noschool']=pd.Series(Noschool)d['school']=pd.Series(school)print(d)d1=d['Noschool'].T.valuesd2=d['school'].T.valuesplt.figure(figsize=(10,6))x1=range(0,len(d))x2=[i+0.3 for i in x1]plt.bar(x1,d1,color='#00686b',width=0.3,alpha=0.6,label='非學區房')plt.bar(x2,d2,color='#c82d31',width=0.3,alpha=0.6,label='學區房')plt.xlabel('城區')plt.ylabel('單位面積價格')plt.title('分城區、是否學區的房屋價格')plt.legend(loc='upper left')plt.xticks(range(0,10),dist)plt.show()'''除了 南山 之外,其他區的 學區房價格 均比 非學區房 高'''
In [ ]:
# # # 探索 南山 和 鹽田 學區房價格比較低的原因,是否是樣本量的問題num_noschool_ns = data[(data['district']=='南山')&(data['school']==0)].shape[0]num_school_ns = data[(data['district']=='南山')&(data['school']==1)].shape[0]print('南山非學區房\t',num_noschool_ns,'\t',
'南山學區房\t',num_school_ns,'\t',
'南山學區房佔南山所有二手房的{}'.format(int(num_school_ns)/int(int(num_school_ns)+int(num_noschool_ns))))
In [ ]:
# # # 分城區的學區房分組箱線圖school =['大鵬新區','坪山','龍崗','光明','鹽田','龍華','羅湖','寶安','福田','南山']for i in school:
# sns.boxplot(x=df_temp6['school'], y=df_temp5['per_price'],
# palette=sns.cubehelix_palette(4, start=2, rot=0, dark=0, light=.95))
sns.boxplot(x=data[data.district==i]['school'],y=data[data.district==i]['per_price'],palette=sns.cubehelix_palette(4, start=2, rot=0, dark=0, light=.95))
# data[data.district==i][['school','per_price']].boxplot(by='school',patch_artist=True,color='#b6b51f')
plt.xlabel(i+'學區房')
plt.show()
In [ ]:
# (三) 假想情形,做預測,x_new是新的自變數'''預測要找一個條件為:1.南山區2.有3個房間3.面積大概再80㎡左右4.有地鐵5.學區房的房子的大概花費'''x_new1=data2.head(1).copy()print(x_new1)x_new1['dist_南山']=1x_new1['roomnum']=3x_new1['AREA_ln']=np.log(80)x_new1['subway']=1x_new1['school']=1#預測值import mathprint("單位面積房價:",round(math.exp(lm3.predict(x_new1)),2),"萬元/平方米")print("總價:",round(math.exp(lm3.predict(x_new1))*80,2),"萬元")'''輸出預測的 單位面積房價 和 總價(如 → 單位面積房價: 5.63 萬元/平方米 總價: 450.31 萬元)'''
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69977871/viewspace-2700672/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 波士頓房價預測
- 房價預測Task1
- Kaggle入門之房價預測
- 實驗1-波士頓房價預測
- Kaggle 入門並實戰房價預測
- 深房中協:2024年6月17-23日深圳市二手房周交易量
- R語言邏輯迴歸、GAM、LDA、KNN、PCA主成分分類分析預測房價及交叉驗證R語言邏輯迴歸GAMLDAKNNPCA
- 58安居客:2021年10月重點城市二手房房價地圖地圖
- 使用機器學習預測房價(附連結)機器學習
- 專案2:運營商客戶流失分析與預測
- R語言課程設計之-深圳房價預測模型R語言模型
- 淺談AMB300母線槽紅外測溫對於某鋰電廠房專案專案分析
- 北京二手房怎麼買?
- Scrapy爬取二手房資訊+視覺化資料分析視覺化
- 使用pmml跨平臺部署機器學習模型Demo——房價預測機器學習模型
- 二手房、金融貸款微站
- Python 來算算一線城市的二手房價格指數相關性Python
- 預測性分析的價值、方法和趨勢
- 智慧電網的電能預估及價值分析
- 二手房購買流程及注意事項,建議收藏!避免踩坑!
- 2010-2018年我國分地區及城市房價收入比分析報告
- 夜遊專案如何創造價值及實現價值
- 基於sklearn的波士頓房價預測_線性迴歸學習筆記筆記
- 資料治理--房產專案
- 利用Python對鏈家網北京二手房進行簡單資料分析Python
- Python採集3000條北京二手房資料,看我都分析出了啥?Python
- 貝殼研究院 :2021年1月二手房業主預期增強
- 基於MXNET框架的線性迴歸從零實現(房價預測為例)框架
- 詳解 Kaggle 房價預測競賽優勝方案:用 Python 進行全面資料探索Python
- 灰色預測分析
- 蘭州二手房資料自取(學習使用)
- AdaBoost 演算法-分析波士頓房價資料集演算法
- 貸款違約預測專案-資料分箱
- 58安居客房產研究院:2021年11月北京廣州及多數二線城市二手房掛牌均價環比下行
- 預測分析 · 員工滿意度預測
- 使用python3抓取鏈家二手房資料Python
- Python&R爬取分析趕集網北京二手房資料(附詳細程式碼)Python
- 專案分析