国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)分析(以kaggle上的加州房價為例)

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)分析(以kaggle上的加州房價為例)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

數(shù)據(jù)來源:House Prices - Advanced Regression Techniques

參考文獻:

  • Comprehensive data exploration with Python

1. 導入數(shù)據(jù)

import pandas as pd
import warnings
warnings.filterwarnings('ignore') # 忽略警告
df_train = pd.read_csv('./house-prices-advanced-regression-techniques/train.csv')
df_train.columns
Index(['Id', 'MSSubClass', 'MSZoning', 'LotFrontage', 'LotArea', 'Street',
       'Alley', 'LotShape', 'LandContour', 'Utilities', 'LotConfig',
       'LandSlope', 'Neighborhood', 'Condition1', 'Condition2', 'BldgType',
       'HouseStyle', 'OverallQual', 'OverallCond', 'YearBuilt', 'YearRemodAdd',
       'RoofStyle', 'RoofMatl', 'Exterior1st', 'Exterior2nd', 'MasVnrType',
       'MasVnrArea', 'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual',
       'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinSF1',
       'BsmtFinType2', 'BsmtFinSF2', 'BsmtUnfSF', 'TotalBsmtSF', 'Heating',
       'HeatingQC', 'CentralAir', 'Electrical', '1stFlrSF', '2ndFlrSF',
       'LowQualFinSF', 'GrLivArea', 'BsmtFullBath', 'BsmtHalfBath', 'FullBath',
       'HalfBath', 'BedroomAbvGr', 'KitchenAbvGr', 'KitchenQual',
       'TotRmsAbvGrd', 'Functional', 'Fireplaces', 'FireplaceQu', 'GarageType',
       'GarageYrBlt', 'GarageFinish', 'GarageCars', 'GarageArea', 'GarageQual',
       'GarageCond', 'PavedDrive', 'WoodDeckSF', 'OpenPorchSF',
       'EnclosedPorch', '3SsnPorch', 'ScreenPorch', 'PoolArea', 'PoolQC',
       'Fence', 'MiscFeature', 'MiscVal', 'MoSold', 'YrSold', 'SaleType',
       'SaleCondition', 'SalePrice'],
      dtype='object')
df_train['SalePrice'].describe()
count      1460.000000
mean     180921.195890
std       79442.502883
min       34900.000000
25%      129975.000000
50%      163000.000000
75%      214000.000000
max      755000.000000
Name: SalePrice, dtype: float64

2. 變量分析

import seaborn as sns
# 繪制售價的直方圖
sns.distplot(df_train['SalePrice']);

數(shù)據(jù)分析(以kaggle上的加州房價為例)

# 輸出偏度和峰度
print("Skewness: %f" % df_train['SalePrice'].skew())
print("Kurtosis: %f" % df_train['SalePrice'].kurt())
Skewness: 1.882876
Kurtosis: 6.536282
  • 偏度(Skewness)是一種衡量隨機變量概率分布的偏斜方向和程度的度量,是統(tǒng)計數(shù)據(jù)分布非對稱程度的數(shù)字特征。偏度可以用來反映數(shù)據(jù)分布相對于對稱分布的偏斜程度。偏度的取值范圍為 (?∞,+∞),完全服從正態(tài)分布的數(shù)據(jù)的偏度值為0,偏度值越大,表示數(shù)據(jù)分布的右側尾部較長和較厚,稱為右偏態(tài)或正偏態(tài);偏度值越小,表示數(shù)據(jù)分布的左側尾部較長和較厚,稱為左偏態(tài)或負偏態(tài)。
  • 峰度(Kurtosis)是一種衡量隨機變量概率分布的峰態(tài)的指標。峰度高就意味著方差增大是由低頻度的大于或小于平均值的極端差值引起的。峰度可以用來度量數(shù)據(jù)分布的平坦度(flatness),即數(shù)據(jù)取值分布形態(tài)陡緩程度的統(tǒng)計量。
# 繪制GrLivArea(生活面積)的散點圖
var = 'GrLivArea'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
data.plot.scatter(x=var, y='SalePrice', ylim=(0, 800000));

數(shù)據(jù)分析(以kaggle上的加州房價為例)

# 繪制TotalBsmtSF(地下室面積)的散點圖
var = 'TotalBsmtSF'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
data.plot.scatter(x=var, y='SalePrice', ylim=(0, 800000));

數(shù)據(jù)分析(以kaggle上的加州房價為例)

import matplotlib.pyplot as plt
# 繪制OverallQual(房屋整體材料和裝修質量)的箱線圖
var = 'OverallQual'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
f, ax = plt.subplots(figsize=(8, 6))
fig = sns.boxplot(x=var, y='SalePrice', data=data)
fig.axis(ymin=0, ymax=800000);

數(shù)據(jù)分析(以kaggle上的加州房價為例)

# 繪制YearBuilt(建造年份)的箱線圖
var = 'YearBuilt'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
f, ax = plt.subplots(figsize=(16, 8))
fig = sns.boxplot(x=var, y='SalePrice', data=data)
fig.axis(ymin=0, ymax=800000)
plt.xticks(rotation=90);    # 旋轉x軸標簽90度

數(shù)據(jù)分析(以kaggle上的加州房價為例)

  • GrLivAreaTotalBsmtSFSalePrice呈線性關系。TotalBsmtSF的斜率更大,說明地下室面積對售價的影響更大。
  • OverallQualYearBuiltSalePrice呈正相關關系。

3. 更進一步的變量分析

第二步只是憑著直覺對數(shù)據(jù)進行了初步的分析,下面我們將對數(shù)據(jù)進行更進一步的分析。

# 繪制變量相關矩陣
corrmat = df_train.corr(numeric_only=True) # 僅對數(shù)值型變量進行相關分析
f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corrmat, vmax=.8, square=True);

數(shù)據(jù)分析(以kaggle上的加州房價為例)

import numpy as np
# SalePrice與其他變量的相關系數(shù)
k = 10
cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index # 與SalePrice相關系數(shù)最大的10個變量的索引
cm = np.corrcoef(df_train[cols].values.T) # 計算相關系數(shù)矩陣
sns.set(font_scale=1.25)
hm = sns.heatmap(cm, annot=True, fmt='.2f', annot_kws={'size': 10},
                 yticklabels=cols.values, xticklabels=cols.values)  # 設置annot=True,顯示相關系數(shù)
plt.show()

數(shù)據(jù)分析(以kaggle上的加州房價為例)

對于GarageCarsGarageArea,兩者有很強的關聯(lián)性,因此選擇保留GrageCars,因為它與SalePrice的相關性更高;TotalBsmtSF1stFloor(First Floor square feet)也有很強的關聯(lián)性,地下室面積一般情況下不會大于一樓的面積,故選擇保留TotalBsmtSF

因此最終保留了7個與SalePrice關聯(lián)最大的7個變量,分別是OverallQualGrLivArea、GarageCars、TotalBsmtSFFullBath、YearBuiltYearRemodAdd

# 繪制變量之間的pairplot散點圖
sns.set()
cols = ['SalePrice', 'OverallQual', 'GrLivArea', 'GarageCars', 'TotalBsmtSF',
        'FullBath', 'YearBuilt', 'YearRemodAdd']
sns.pairplot(df_train[cols], size=2.5)
plt.show()

數(shù)據(jù)分析(以kaggle上的加州房價為例)

觀察成對散點圖:

TotalBsmtSFGrLivArea兩者的圖像上有一條直線,仿佛邊界一般。說明地下室面積和生活面積成正比。就像上面提到的地下室面積和一樓面積的關系一樣。

SalePriceYearBuilt的散點仿佛指數(shù)函數(shù)一般,說明房價隨著建造年份的增加而增加。

4. 缺失值處理

total = df_train.isnull().sum().sort_values(ascending=False) # 統(tǒng)計每個變量的缺失值個數(shù)
percent = (df_train.isnull().sum() / len(df_train)).sort_values(ascending=False) # 統(tǒng)計每個變量的缺失值比例
missing_data = pd.concat([total, percent], axis=1, keys=['Total', 'Percent'])
missing_data.head(20)
Total Percent
PoolQC 1453 0.995205
MiscFeature 1406 0.963014
Alley 1369 0.937671
Fence 1179 0.807534
MasVnrType 872 0.597260
FireplaceQu 690 0.472603
LotFrontage 259 0.177397
GarageYrBlt 81 0.055479
GarageCond 81 0.055479
GarageType 81 0.055479
GarageFinish 81 0.055479
GarageQual 81 0.055479
BsmtFinType2 38 0.026027
BsmtExposure 38 0.026027
BsmtQual 37 0.025342
BsmtCond 37 0.025342
BsmtFinType1 37 0.025342
MasVnrArea 8 0.005479
Electrical 1 0.000685
Id 0 0.000000
df_train = df_train.drop((missing_data[missing_data['Total'] > 1]).index, axis=1) # 將缺失數(shù)量大于1的列刪去
df_train = df_train.drop(df_train.loc[df_train['Electrical'].isnull()].index) # 將Electrical缺失的行刪去
df_train.isnull().sum().max() # 檢查是否還有缺失值
0
from sklearn.preprocessing import StandardScaler
saleprice_scaled = StandardScaler().fit_transform(df_train['SalePrice'].to_numpy()[:, np.newaxis])
# 輸出異常值
low_range = saleprice_scaled[saleprice_scaled[:, 0].argsort()][:10]
high_range = saleprice_scaled[saleprice_scaled[:, 0].argsort()][-10:]
print('outer range (low) of the distribution:')
print(low_range)
print('\nouter range (high) of the distribution:')
print(high_range)
outer range (low) of the distribution:
[[-1.83820775]
 [-1.83303414]
 [-1.80044422]
 [-1.78282123]
 [-1.77400974]
 [-1.62295562]
 [-1.6166617 ]
 [-1.58519209]
 [-1.58519209]
 [-1.57269236]]

outer range (high) of the distribution:
[[3.82758058]
 [4.0395221 ]
 [4.49473628]
 [4.70872962]
 [4.728631  ]
 [5.06034585]
 [5.42191907]
 [5.58987866]
 [7.10041987]
 [7.22629831]]
# 重新繪制GrLivArea和SalePrice的散點圖
var = 'GrLivArea'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
data.plot.scatter(x=var, y='SalePrice', ylim=(0, 800000));

數(shù)據(jù)分析(以kaggle上的加州房價為例)

上圖中右下角的兩個點是異常值,因為它們的GrLivArea很大,但是售價很低。因此將它們刪除。

lines = df_train.sort_values(by='GrLivArea', ascending=False)[:2]
df_train = df_train.drop(lines.index)

5. 測試數(shù)據(jù)

對于結果的計算分析,需要建立在一定的數(shù)據(jù)假設上。通常,需要考慮這四種情況:

  • 正態(tài)性(Normality):許多的統(tǒng)計方法測試都是基于數(shù)據(jù)是正態(tài)分布的情況,因此,如果數(shù)據(jù)服從正態(tài)分布能避免很多問題。
  • 同方差性(Homoscedasticity):同方差性是指因變量的方差在自變量的每個水平上都相等。同方差性是許多統(tǒng)計檢驗的一個前提條件,如果數(shù)據(jù)不符合同方差性,可能會導致結果不準確。
  • 線性性(Linearity):線性模型的一個前提條件是自變量和因變量之間的關系是線性的,如果不是線性的,可能需要對數(shù)據(jù)進行轉換。
  • 不存在相關錯誤(Absence of correlated errors):相關錯誤是指數(shù)據(jù)中的一個觀測值的誤差與另一個觀測值的誤差相關。例如,如果兩個觀測值的誤差都是正的,那么它們之間就存在正相關錯誤。相關錯誤可能會導致結果不準確。
from scipy.stats import norm
from scipy import stats
# 繪制直方圖與正態(tài)概率圖
sns.distplot(df_train['SalePrice'], fit=norm)
fig = plt.figure()
res = stats.probplot(df_train['SalePrice'], plot=plt)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

# 對SalePrice進行l(wèi)og轉換使其更接近正態(tài)分布,并重新繪制直方圖與正態(tài)概率圖
df_train['SalePrice'] = np.log(df_train['SalePrice'])
sns.distplot(df_train['SalePrice'], fit=norm)
fig = plt.figure()
res = stats.probplot(df_train['SalePrice'], plot=plt)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

# 同理,對GrLivArea繪制直方圖與正態(tài)概率圖
sns.distplot(df_train['GrLivArea'], fit=norm)
fig = plt.figure()
res = stats.probplot(df_train['GrLivArea'], plot=plt)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

# 對GrLivArea進行l(wèi)og轉換使其更接近正態(tài)分布,并重新繪制直方圖與正態(tài)概率圖
df_train['GrLivArea'] = np.log(df_train['GrLivArea'])
sns.distplot(df_train['GrLivArea'], fit=norm)
fig = plt.figure()
res= stats.probplot(df_train['GrLivArea'], plot=plt)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

# 還有TotalBsmtSF
sns.distplot(df_train['TotalBsmtSF'], fit=norm)
fig = plt.figure()
res = stats.probplot(df_train['TotalBsmtSF'], plot=plt)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

由于一些房子沒有地下室,導致有很多0值,因此不能對TotalBsmtSF進行l(wèi)og轉換。

這里創(chuàng)建一個新的變量,如果TotalBsmtSF>0,則為1,否則為0。

df_train['HasBsmt'] = pd.Series(len(df_train['TotalBsmtSF']), index=df_train.index)
df_train['HasBsmt'] = 0
df_train.loc[df_train['TotalBsmtSF'] > 0, 'HasBsmt'] = 1
# 對HasBsmt為1的數(shù)據(jù)進行l(wèi)og轉換
df_train.loc[df_train['HasBsmt'] == 1, 'TotalBsmtSF'] = np.log(df_train['TotalBsmtSF'])
sns.distplot(df_train[df_train['TotalBsmtSF'] > 0]['TotalBsmtSF'], fit=norm)
fig = plt.figure()
res = stats.probplot(df_train[df_train['TotalBsmtSF'] > 0]['TotalBsmtSF'], plot=plt)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

數(shù)據(jù)分析(以kaggle上的加州房價為例)

對于同方差的檢驗,可以繪制散點圖。如果散點呈現(xiàn)錐形(就像之前畫的),這意味著數(shù)據(jù)的方差隨著自變量的增加而增加,通常被稱為異方差;變量是同方差,散點的數(shù)據(jù)應該分布在一條直線附近。

現(xiàn)在我們來看一下經過log運算后的SalePriceGrLivArea還有TotalBsmtSF的散點圖。

plt.scatter(df_train['GrLivArea'], df_train['SalePrice']);

數(shù)據(jù)分析(以kaggle上的加州房價為例)

plt.scatter(df_train[df_train['TotalBsmtSF'] > 0]['TotalBsmtSF'], df_train[df_train['TotalBsmtSF'] > 0]['SalePrice']);

數(shù)據(jù)分析(以kaggle上的加州房價為例)

6. 啞變量

# 將類別變量轉換為啞變量
df_train = pd.get_dummies(df_train)

總結

本次使用了pandas庫和seaborn庫對數(shù)據(jù)進行了初步的分析,對數(shù)據(jù)的缺失值進行了處理,對數(shù)據(jù)進行了轉換,最后將類別變量轉換為啞變量。文章來源地址http://www.zghlxwxcb.cn/news/detail-706725.html

到了這里,關于數(shù)據(jù)分析(以kaggle上的加州房價為例)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 競賽 大數(shù)據(jù)房價預測分析與可視

    競賽 大數(shù)據(jù)房價預測分析與可視

    ?? 優(yōu)質競賽項目系列,今天要分享的是 ?? 大數(shù)據(jù)房價預測分析與可視 ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/

    2024年02月07日
    瀏覽(24)
  • 城市房價數(shù)據(jù)可視化分析 計算機畢設 數(shù)據(jù)分析大數(shù)據(jù)畢設

    城市房價數(shù)據(jù)可視化分析 計算機畢設 數(shù)據(jù)分析大數(shù)據(jù)畢設

    1.讀數(shù)據(jù)表 首先,讀取數(shù)據(jù)集。 CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT target 0.00632 18 2.31 0 0.538 6.575 65.2 4.09 1 296 15.3 396.9 4.98 24 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.9 9.14 21.6 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 4.03 34.7 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.

    2024年02月20日
    瀏覽(27)
  • 數(shù)據(jù)分析與數(shù)據(jù)挖掘實戰(zhàn)案例本地房價預測(716):

    數(shù)據(jù)分析與數(shù)據(jù)挖掘實戰(zhàn)案例本地房價預測(716):

    2022 年首屆釘釘杯大學生大數(shù)據(jù)挑戰(zhàn)賽練習題目 練習題 A:二手房房價分析與預測 要點: 1、機器學習 2、數(shù)據(jù)挖掘 3、數(shù)據(jù)清洗、分析、pyeahcrs可視化 4、隨機森林回歸預測模型預測房價 1、讀入數(shù)據(jù)、清洗數(shù)據(jù): 2、解決相關問題: (一) 根據(jù)附件中的數(shù)據(jù)集,將二手房數(shù)據(jù)

    2024年02月07日
    瀏覽(30)
  • 【畢業(yè)設計】大數(shù)據(jù)房價數(shù)據(jù)分析可視化 - python

    【畢業(yè)設計】大數(shù)據(jù)房價數(shù)據(jù)分析可視化 - python

    ?? Hi,大家好,這里是丹成學長的畢設系列文章! ?? 對畢設有任何疑問都可以問學長哦! 這兩年開始,各個學校對畢設的要求越來越高,難度也越來越大… 畢業(yè)設計耗費時間,耗費精力,甚至有些題目即使是專業(yè)的老師或者碩士生也需要很長時間,所以一旦發(fā)現(xiàn)問題,一定

    2024年02月02日
    瀏覽(51)
  • 基于多元線性回歸的Boston房價數(shù)據(jù)分析

    基于多元線性回歸的Boston房價數(shù)據(jù)分析

    Boston房價數(shù)據(jù)是R語言中一類重要的數(shù)據(jù),常被用來做各種方法分析,即它是波士頓不同地區(qū)的506個家庭住房信息,其中包括影響房價的14個因素如城鎮(zhèn)的人均犯罪率、氮氧化合物濃度、城鎮(zhèn)黑人的比例、低教育程度的人口比例等,而且每個因素對房價的影響都是不同顯著程度

    2024年01月19日
    瀏覽(28)
  • 【畢設選題】大數(shù)據(jù)房價預測分析與可視

    【畢設選題】大數(shù)據(jù)房價預測分析與可視

    ?? 這兩年開始畢業(yè)設計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統(tǒng)達不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設,學長分享優(yōu)質畢業(yè)設計項目,今天

    2024年02月03日
    瀏覽(32)
  • kaggle競賽-Stable Diffusion數(shù)據(jù)分析與baseline

    kaggle競賽-Stable Diffusion數(shù)據(jù)分析與baseline

    你的目的是來預測我們生成圖像的提示詞 這個競賽的目標不是從文本提示生成圖像,而是創(chuàng)建一個模型,可以在給定生成圖像的情況下預測文本提示(你有一堆提示詞,你預測是否該提示詞參與了圖像的生成)?您將在包含由Stable Diffusion 2.0生成的各種(提示,圖像)對的數(shù)據(jù)集

    2023年04月26日
    瀏覽(23)
  • python畢設 大數(shù)據(jù)房價數(shù)據(jù)分析及可視化(源碼分享)

    python畢設 大數(shù)據(jù)房價數(shù)據(jù)分析及可視化(源碼分享)

    今天分享一個大數(shù)據(jù)畢設項目:畢設分享 大數(shù)據(jù)房價數(shù)據(jù)分析及可視化(源碼分享) 項目獲?。?https://gitee.com/sinonfin/algorithm-sharing 實現(xiàn)效果 畢業(yè)設計 房價大數(shù)據(jù)可視化分析 房地產是促進我國經濟持續(xù)增長的基礎性、主導性產業(yè)。如何了解一個城市的房價的區(qū)域分布,或者不

    2024年02月02日
    瀏覽(34)
  • python 導入fetch_california_housing 加州房價數(shù)據(jù)集報錯解決

    python 導入fetch_california_housing 加州房價數(shù)據(jù)集報錯解決

    1 導入加州房價數(shù)據(jù)集 顯示 HTTP Error 403:Forbidden 2 處理方法? ①手工下載數(shù)據(jù)集? 打開_california_housing.py 文件,里面有數(shù)據(jù)集的下載地址,不知道_california_housing.py文件地址的可以看報錯中提示的位置 ?_california_housing.py文件中43行,有數(shù)據(jù)集的下載地址(https://www.dcc.fc.up.pt/~l

    2024年02月07日
    瀏覽(26)
  • 互聯(lián)網加競賽 大數(shù)據(jù)房價預測分析與可視

    互聯(lián)網加競賽 大數(shù)據(jù)房價預測分析與可視

    ?? 優(yōu)質競賽項目系列,今天要分享的是 ?? 大數(shù)據(jù)房價預測分析與可視 ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/

    2024年02月22日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包