Skip to content
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Data Science - Data Analysis

“Nghịch” phân tích giá nhà đất và chia sẻ dữ liệu 440,000 tin bán nhà 2020

By Chủ tiệm Mì
August 10, 2020 5 Min Read
3

Xin chào các member Mì AI và chúc cả nhà một tuần làm việc hiểu quả nhé. Hôm nay chúng ta sẽ “nghịch” (phân tích nhẹ nhàng) và chia sẻ dữ liệu giá nhà đất 02 tháng gần nhất.

Đầu tiên là mình xin nói qua một chút là mình không chuyên về món Khoa học dữ liệu nên đây chỉ là vài lệnh cơ bản, mình chia sẻ cho các bạn newbie cùng học, tham khảo thôi. Mong các cao thủ góp ý thêm.

Phần 1 – Tìm hiểu dữ liệu

Dữ liệu ở đây mình đã tiến hành crawl từ trên một trang mua bán nhà đất với tổng số 440K bản ghi. Đây là số tin mua bán nhà đất toàn quốc trong 2 tháng gần nhất.

Dữ liệu có dạng như sau:

pandas

Ý nghĩa các trường như sau:

  • Time: Là thời gian crawl về, mình chưa sử dụng field này.
  • Title: Tiêu đề của tin đăng
  • Poster_temp: đây là tên đơn vị đăng tin, có thể là MÔI GIỚI hoặc tên các doanh nghiệp/cá nhân đăng bán BĐS
  • Area_temp: Là tỉnh/thành của BĐS
  • Unit_temp: Là đơn giá của BĐS
  • Price_temp: Là giá BĐS chưa nhân với đơn giá
  • Final_price: Là giá BĐS đã nhân với đơn giá và quy đổi ra đơn vị Đồng.

Rồi, bây giờ nghịch ngợm tý nhé!

Phần 2 – Nghịch phân tích dữ liệu giá nhà đất

Đầu tiên chúng ta xem các tin đăng này đến từ đơn vị nào là chính? Theo mình nghĩ là MÔI GIỚI =)). Để thử xem nhé, nói có sách, mách có chứng chuẩn hơn.

Đầu tiên là load dữ liệu từ file cái nào:

data_all = pd.read_csv('final.csv')

Tiếp theo ta group theo poster_temp và đếm số tin theo người đăng tin:

# Vẽ biểu dồ môi giới/others
df = data_all.groupby('poster_temp')['time'].count().reset_index()
df = df.sort_values(by=['time'])
df.tail()

Dữ liệu output sẽ là:

jupyter

Ở đây ta đã có thể vẽ biểu đồ PIE để thể hiện tỷ lệ bài đăng nhưng do số lượng người đăng tin quá lớn nên biểu đồ không đẹp, bị nhiễu. Ta sẽ vẽ 2 class là : MÔI GIỚI và Others (các người đăng tin khác) thôi.

Chế biến tý nào:

df_draw = df[-1:].copy()
new_row = pd.DataFrame(data = {
    'poster_temp' : ['Others'],
    'time' : [df['time'][:-1].sum()]
})
df_draw = pd.concat([df_draw, new_row])
# Vẽ biểu đồ
df_draw.plot.pie(y='time')

Ối giời, đúng là toàn tin của MÔI GIỚI, chiếm đến 4/5 thì phải. Vãi chưởng! Bảo sao đi đâu cũng gặp tin của môi giới, chả bao giờ gặp chính chủ.

phân tích giá nhà

Tiếp theo ta xem các tỉnh thành thì ở đâu mua bán nhà nhộn nhịp nhất nào?

Tương tự như trên, ta cũng ko vẽ hết các tỉnh thành lên biểu đồ, ta chỉ lấy 5 tỉnh/thành có số lượng tin lớn nhất và còn lại gom vào thành Others thôi.

Chế biến tý:

# Count so luong tin
data_city = data_all.groupby('area_temp').count().reset_index()
data_city.head(100)
data_city = data_city.sort_values(by=['time'])

df_draw = data_city[-5:].copy()
new_row = pd.DataFrame(data = {
    'area_temp' : ['Others'],
    'time' : [df['time'][:-5].sum()]
})
df_draw = pd.concat([df_draw, new_row])
# Vẽ cái nào
df_draw.set_index('area_temp',inplace=True)
df_draw.plot.pie(y='time')

Đây rồi, kết quả đây:

phân tích số liệu

Vậy là TP.HCM nhiều tin nhất, Hà nội thứ nhì và sau đó là Đà nẵng, Cần Thơ và Bình Dương. Các tỉnh còn lại chiếm khoảng 30%.

Đó là về số lượng tin, thế còn tổng số tiền thì sao nhỉ? Thử thôi!

# Sum so tien
data_city = data_all.groupby('area_temp').sum().reset_index()
data_city = data_city.sort_values(by=['final_price'])
data_city.tail(100)

df_draw = data_city[-5:].copy()
new_row = pd.DataFrame(data = {
    'area_temp' : ['Others'],
    'final_price' : [data_city['final_price'][:-5].sum()]
})
df_draw = pd.concat([df_draw, new_row])
df_draw.head(10)
# Vẽ biểu đồ
df_draw.set_index('area_temp',inplace=True)
df_draw.plot.pie(y='final_price',autopct='%1.0f%%', pctdistance=1.1, labeldistance=1.3,legend=0)

Cũng khá tương đồng, không khác mấy so với số lượng giao dịch:

giá nhà đất

Đến lúc này thì chắc các bạn đều bảo là thì TP.HCM và HN sôi động mà, nhộn nhịp và giá nhà đắt đỏ thế còn gì nữa? Có gì lạ. Có đó!

Mình nghĩ chắc chắn giá TP.HCM là vô địch rồi còn gì nữa nên kiểm tra giá lớn nhất được rao bán ở các tỉnh thành xem sao?

# Sum so tien
data_city_mm = data_all.groupby('area_temp').agg({"final_price":"max"})
data_city_mm.sort_values(by=['final_price'],inplace=True)
# Vẽ nào
data_city_mm.plot.bar(figsize=(30,10))

Và kết quả thì vê lờ luôn, Daklak vô địch. Quảng Nam và Đà Nẵng còn hơn Hà Nội nhá =)). Có lẽ do đất rộng, bán nguyên quả đồi chăng =)). Cái này mình chưa đi sâu tìm hiểu thêm, các bạn đào thử xem nguyên nhân vì sao nhé.

biểu đồ giá

Ah, quay lại bài toán trên, đó là số lượng tin đăng và tổng giá trị nhà đất đều là TP.HCM vô địch. Nhưng giá trị trung bình của một tin đăng thì sao nhỉ? Thử xem!

# Sum so tien
data_city_mm = data_all.groupby('area_temp')['final_price'].mean().reset_index()
data_city_mm.sort_values(by=['final_price'],inplace=True)
data_city_mm.head(100)

data_city_mm.set_index('area_temp',inplace=True)
data_city_mm.plot.bar(figsize=(25,10))

Đúng như dự đoán. TP.HCM có nhiều tin đăng nhưng giá trị trung bình các tin đăng thì còn thua xa các tỉnh khác như: Ninh Bình, Bình Phước và Quảng Ngãi nhé. Các tỉnh năng ít đăng tin nhưng khi đã đăng là bán nguyên quả đồi =))

phân tích

Phần 3 – Chia sẻ dữ liệu

Ok, vui vẻ chút đầu tuần vậy thôi, không có ý gì các bạn nhé. Bây giờ các bạn có thể vào Thư viện Mì AI: https://miai.vn/thu-vien-mi-ai (Bạn xem video clip để biết cách tải về) kéo xuống phần DataSet, tìm “Dữ liệu giá nhà đất để tải” về nhé.

Hẹn gặp lại các bạn trong các bài tiếp theo!

Chúc các bạn thành công!

Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
Website: https://miai.vn/
Youtube: http://bit.ly/miaiyoutube

Tags:

data analysistdata nhà đấtData Sciencegiá nhàgiá nhà đấtnhà đấtnumpypandasphân tích giá nhàpythonrealreal priceshare data
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

Cách sử dụng Thread trong Python

Next

Named Entity Recognition – Nhận diện thực thể trong câu khi xử lý ngôn ngữ tự nhiên

3 Comments
  1. Nguyễn Hoàng Thái Duy says:
    August 28, 2020 at 11:20 am

    Hi anh Thắng,

    Sau khi ngồi vọc vạch cùng dữ liệu anh chia sẻ thì em thấy giá lớn nhất tại Daklak bị sai thì phải, giá max trong bộ dữ liệu crawl ra là 490 tỷ, trong khi title tại row đó là “Bán rẻ lô đất Thành Nhất 490 triệu 5 x 20”. Sau khi find out thì giá 490 triệu là đúng tại các trang mua bán nhà đất :v . Vì vậy có thể khi xử lý dữ liệu khi crawl xử lý sai ý. Không phải bán cả quả đồi đâu ạ =))))

    Reply
    1. Nguyễn Chiến Thắng says:
      August 29, 2020 at 7:17 am

      Thanks em. Dữ liệu anh cũng ko chăm sóc kỹ đâu. Share là chính thôi haha! Thanks em phát hiện ra để các bạn mần cho dễ haha!

      Reply
      1. nghiadt says:
        August 31, 2020 at 8:50 am

        Chỗ này em nghĩ tính median sẽ cho kết quả thực tế hơn là mean anh ạ 😀

        Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Tìm hiểu và cài đặt OpenClaw – trợ lý ảo 24/7 thông minh đa chức năng – Mì Ai
  • Dùng thử Pika – robot học Tiếng Anh cho trẻ cực đỉnh – Mì AI
  • TopView.AI 4.0 – nền tảng tạo AI video cộng tác bá đạo – Mì AI
  • Storm MCP – giải pháp nhanh gọn nhẹ để có MCP Server trong 5 phút – Mì AI
  • VoxCPM thử voice cloning với checkpoint finetune Tiếng Việt – Mì AI

Recent Comments

  1. Chủ tiệm Mì on Thử xây dựng hệ thống Agentic AI với LangGraph – Mì AI
  2. Nguyễn Chiến Thắng on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  3. Trần Sơn Dương on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  4. Salomon on [CV] Thử làm model cảnh báo ngủ gật cho tài xế oto bằng Dlib và Resnet
  5. khang on Xây dựng hệ thống nhận diện thủ ngữ – ngôn ngữ ký hiệu tay – để giao tiếp với người khuyết tật

Categories

  • Basic
  • Computer Vision
  • Data Science – Data Analysis
  • Generative AI
  • MÌ ÚP
  • Natural Language Processing
  • RNN-LSTM-GRU
  • Share Data

Là người đi trước, hãy biết đưa tay lại phía sau.

Nguyễn Chiến Thắng
Cảm ơn các bạn đã ủng hộ Mì AI!